3

「innerHTML」を使用して、現在のページのタグのコンテンツを取得および設定できることを知っています。

しかし、同じ方法で外部スクリプト/スタイルを読み取る(実行するのではなく、内容を読み取る)方法があるかどうか疑問に思っていましたか?何かのようなもの

<script id="dScript" src="url.js"></script>

//in real practice, this returns a blank
//what i need is to read url.js's contents
<script>
    var extScript = document.getElementById('dScript').innerHTML;
</script>

同じコンテキストで、LESS CSS はカスタム リンク シートをどのように読み取るのでしょうか? AJAX経由でできることは知っていますが、スクリプトローダーを使用してコンテンツをロードしようとしており、動的タグを使用してSOPを効果的にバイパスしているため、AJAXは問題外です。

4

2 に答える 2

4

いいえ、これは同一生成元ポリシーに違反しています。そのため、JSONP はサードパーティのスクリプトを実行します (それを読み取りません)。

Cross Origin Resource Sharing でできるかもしれませんが、私の知る限り、それは AJAX でなければなりません。

于 2012-04-18T02:41:50.070 に答える
1

あなたが探していることを正確に行うために、プロキシサーバーを作成しました。この API は、realJS (Resource Express Asynchronous Loader) と呼ばれます。必要なドメインから必要なリソースを非同期にロードします。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <title>REAL</title>
        <script data-src="http://realdotjs.appspot.com/loader.html" src="http://realdotjs.appspot.com/script/real.js"></script>
        <script>
            window.addEventListener("realJSLoaded", function (realJS) {
                realJS.load.paths.push("http://code.jquery.com/");
                realJS.load("jquery.js", loadScript);

                function loadScript(script) {
                    // do something with the script
                }
            }, false);
        </script>
    </head>
</html>

パスはいくつでも追加できrealJS.load.paths、正しいパスから正しいリソースが検索されます。commonJS モジュール識別子と絶対 URL もサポートしています。

あらゆる種類のテキスト ファイルまたはバイナリ ファイルを読み込むことができます。ただし、返されたファイルを正しく処理する必要があります。乾杯。=)

于 2012-04-18T02:53:21.543 に答える