ホームページ >ウェブフロントエンド >jsチュートリアル >JS_javascript スキルで実装されたインクルード関数

JS_javascript スキルで実装されたインクルード関数

WBOY
WBOYオリジナル
2016-05-16 19:11:231296ブラウズ

多くの言語には、php の include 関数と require 関数に似た関数がありますが、JavaScript だけにはありません。
私は長い間、js で同様の関数を実装したいと思っていましたが、何度も試みましたが、成功しませんでした。その日、Google で CSS ファイルの動的読み込みに関するキーワードを検索したところ、ブログを見つけました (アドレスは不明)。 Webページのheadタグにlink要素を追加する関数があったので、それを変更してこの関数を書きました。

使用法:
include_js(src,[reload]);
src: js ファイルのパス名
reload: 同じものをロードするかどうかを示すオプションのパラメーター、0 または 1 jsファイルを繰り返しURLします。

注:
含まれる js ファイルに document.write メソッドがある場合、IE では応答がありませんが、Mozilla Firefox では元の Web ページが消え、document.write のみが表示されます。内容: mad:
この問題には当然コツがあります:
それは、何も表示されないように document.write メソッドを再定義することです。具体的な方法:
include_js の前にこの文を追加
document.write = function () { return false;}
こうすれば、インクルードされた js ファイルに document.write メソッドが含まれていても心配ありませんWeb ページに損害を与えるということです。わかりました! :lol::lol:

目的:
この関数は、一部の広告および統計用の js ファイルを非同期的にロードするために使用でき、js ファイルのロードによって引き起こされる Web ページの表示速度が遅いという問題を回避できます。

この関数を変更して CSS ファイルを動的にロードしますが、JS ファイルをロードするほど便利ではありません。

コードをコピー コードは次のとおりです。

function include_js(path,reload) )
{
var scripts = document.getElementsByTagName("script");
if (!reload)
for (var i=0;i if (scripts[i].src && scripts[i].src.toLowerCase() == path.toLowerCase() ) return;
var sobj = document.createElement('script'); "text/javascript";
sobj.src = パス;
var headobj = document.getElementsByTagName('head')[0];
headobj.appendChild(sobj);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。