2017-03-18 8 views
0

奇妙な質問がありましたが、Googleではそれについて何も見つかりません。以下のコード(Facebookのデベロッパー)のように、.jsファイルに引っ張った場合:実際の.jsファイルをソースとして別のドメインにプルする際に問題がありますか?

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src =  "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&appId=111111"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

彼は//connect.facebook.net/en/sdkのようなものだったと、そのページ上にあったjs.srcは何すべてのjavascriptコードを単なるテキストとして表示します。これをスクリプトタグの間に置くと、javascriptとして動作します。私はいくつかのテストをして、それはうまくいくようですが、私は何かが欠けていると確信しています。

一言で言えば、これはok/secure/stableですか?

+0

両方の返信をありがとうございます。 – Scott

答えて

0

どちらも問題ありません。これにより、同じスクリプトをダブルインサートするのを避けるなど、レイヤーを追加するだけです。

これは単に、このようなDOM要素を作成します:ステップバイ

<script id="facebook-jssdk" src="//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&appId=111111" /> 

ステップ:それはロードされているよう

(function(d, s, id) { // function with 3 arguments 
    // Because of the call below, the arguments are: 
    // d = document 
    // s = "script" 
    // id = "facebook-jssdk" 
    var js, fjs = d.getElementsByTagName(s)[0]; // Gets all elements of type "script" 
    if (d.getElementById(id)) return; // Checks if any of the existent elements have the id "facebook-jssdk", to not doubleinsert 
    js = d.createElement(s); js.id = id; // Creates an element of type "script" and sets the id 
    js.src =  "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&appId=111111"; // Sets the source 
    fjs.parentNode.insertBefore(js, fjs); // Inserts the script 
}(document, 'script', 'facebook-jssdk')); // calls the function above with 3 parameters 

はそうです、それは実際には、ファイルはjavascriptの方だと思います通常は他のスクリプトと同じ方法です。

0

2点。最初に、あなたのソースファイルは、実際にはjsファイル(connect.facebook.net/en_US/sdk.js)であり、その後いくつかのデータがあります。私は完全な短いURLを開こうとしたが、それらは同じソースファイルであるように見えるので、connect.facebook.net/en_US/sdk.jsを使用したのかどうかは関係ありません。

第2に、type = "text/javascript" の開始スクリプトタグを持つことができます。あるいは、document.createElement( 'script')の方法を使用してscriptタグ自体で宣言することもできます、 'script'、 'facebook-jssdk')。

いずれかの方法でOKですが、また違いhere

を説明偉大なポストがあり、あなたはそれをfacebook SDK instructions recommend道をやったので、私はそれが安全だと確信しています。 ;-)

関連する問題