2017-01-11 10 views
0

最近私のインクルードを新しい方法で行ってきましたが、これはデバッグに多大な助けになりましたが、最近Firefoxでのみ機能することがわかりました。クロムとサファリがスクリプトとしてブロブを受け入れないsrc引数

コードの例を以下に示します。 Firefoxで実行すると、 "Hello World"が警告されます。 SafariとChromeで実行すると、ブロブの404が発生します。このコードはHTMLファイルと同じようにスニペットでは行いませんので、以下のプレーンテキストを含めています。

<script> 

function includeScript(script) { 

    var file = new Blob([script], { 
    type: "text/javascript" 
    }); 
    var url = URL.createObjectURL(file); 

    var addMe = document.createElement("script"); 
    addMe.src = url + "?test"; 
    addMe.type = "text/javascript"; 

    document.head.appendChild(addMe); 
} 

function tryIt() { 
    includeScript("alert('hey'); foo.bar"); 
} 
</script> 


<body> 
    <button onclick="tryIt()">Try It</button> 
</body> 

クロムとサファリはなぜブロブの404を返しますか?それを回避する方法はありますか?

Firefoxでローカルstrict_orgin_policyが有効になっていることを確認しましたが、それでも機能するため、ローカルリソースの問題ではないと思います。また、Chromeのコンソールでブロブを正常に動作させることもできます。

答えて

0

ChromeとSafariの両方でBLOBを読み込むことはできますが、最後にurl引数を付けることはできません。

これは動作します:

<script src="blob:123123123123"> 

これますない

<script src="blob:123123123123?arg1=hat"> 
関連する問題