1

私のページの下部にある私は、非同期呼び出しを行わないjquery関数です。Chrome、FireFoxで正常に動作します。しかし、IE8ではjQueryが未定義であると書かれています。これを引き起こしているのは何ですか?

<script src="/scripts/jquery" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        jQuery.ajax( "dev/js/templates", {
                async : false,
                success: function (data) {
                    $("#tpl_scripts").html(data);
                }

    })

    </script>

注意として、スクリプトはPHPからヘッダーとして返されます。

<?php 
$script = file_get_contents('/libs/scripts/jquery.1.8.2');
if (extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) {
            ini_set("zlib.output_compression", 1);
    }

    header('Content-type: text/javascript');

echo $script;
?>
4

2 に答える 2

3

これは長い道のりになるでしょうが、あなたのコメントから判断すると、私は何が起こっているのかいくつかの考えを持っています。

PHPは複数のJavaScriptファイルを連結して、一度に提供するとおっしゃいました。これは一般的には良い考えです(静的コンパイルを行い、Webサーバーのみを使用しますが)。

Internet Explorerは、オブジェクト内のコンマの配置について衒学者であることで有名です。

var a = {
    x: 123,
    y: 456,
}

yプロパティの宣言後の余分なコンマを参照してください。ほとんどのブラウザはそのようなことを気にせず、ほとんどのPHP開発者は常に便宜のためにそれを使用します。

一方、Internet Explorerはこれを爆撃し、後続のコードの残りの実行を停止します。あなたの場合、jQueryの前に独自のコードがあれば、jQueryが含まれる可能性があります(John Resigがその「n00b」の間違いを犯すことは決してないためです:))

于 2012-11-16T18:11:33.037 に答える
1

スクリプトタグのsrc属性に.phpを追加してみてください

<script src="/scripts/jquery.php" type="text/javascript"></script>
于 2012-11-16T18:00:39.403 に答える