9

如果页面中尚未包含 jquery,我想将其包含在文件中。我怎样才能做到这一点?

我写了这个,但它给出了不想要的输出。

<script type="text/javascript">
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
//  alert("Jquery Unavailable");
<?php echo '<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>'; ?>
} else {
    // jQuery present
    alert("Jquery Available");
}
</script>
4

5 回答 5

16

你不能在 PHP 中做到这一点。试试这个

<script type="text/javascript">

if(typeof jQuery == 'undefined'){
        document.write('<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></'+'script>');
  }

</script>
于 2012-04-29T09:54:20.597 回答
11
<script type="text/javascript">
    if(typeof jQuery == 'undefined'){
        var oScriptElem = document.createElement("script");
        oScriptElem.type = "text/javascript";
        oScriptElem.src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";
        document.head.insertBefore(oScriptElem, document.head.getElementsByTagName("script")[0])
    }
</script>
于 2012-04-29T10:38:10.837 回答
10

您可以尝试以下方法:

<script>window.jQuery || document.write('<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"><\/script>')</script>
于 2012-04-29T10:22:36.743 回答
4

您的 PHP 正在服务器上运行并输出一些文本。

然后浏览器将该文本解释为 HTML 和 JavaScript。

您不能在服务器上运行 PHP,在它已经发送到浏览器的文档中,以响应浏览器中运行的逻辑。

您要么需要完全在 JavaScript 中执行此操作,要么更明智地整理您的服务器端逻辑,以便跟踪是否包含 jQuery。

于 2012-04-29T09:53:51.313 回答
0

如果你想用 PHP 来做,我认为这更好,你可以这样做

  • 在调用 load() 函数之前,创建一个变量,如:

    var load_script = '否';

  • load() 函数采用一个可选参数,您可以使用该参数将数据发送到服务器。使用它来发布您之前创建的load_script变量,如下所示

    $('#receiver_div').load('mypage.html',{'load_script':load_script},function(html){

    //页面加载后要做的事情

    })

  • 然后在您正在加载的页面中,像这样捕获发布的值

    $load_script = $_POST('load_script');

  • 然后你可以做一个 if 语句来排除你想要这样的脚本

if($load_script != '否') {

echo "<script src="jquery.js"></script>";

}

于 2013-11-22T20:27:30.070 回答