-1

我有一个 wordpress 主题,它使用 PHP 根据设置输出不同的 Javascript 块。该代码使用加载在页脚中的外部 javascript 文件 (backstretch) 中的函数。

除非在头部加载了 backstretch javascript,否则主题不会正确加载适当的图像,我认为这是因为 PHP 在加载页脚之前正在回显调用脚本方式的代码块(可能是错误的假设)。

有没有办法将调用 Backstretch 代码的 Javascript 块直接回显到页脚(或在页脚中加载 backstretch 之后)?

php 像这样呼应 JS:

  if (x == x) { ?>
<script>
    jQuery(document).ready(function(){ //code});
    </script>
<?php // more code

如果我在头部运行 javascript(Backstretch javascript),控制台会发送此错误:

"Uncaught TypeError: Object function (e,t){return new b.fn.init(e,t,r)} has no method 'backstretch' "

(顺便说一句,jQuery 正在被加载到头部)

多谢你们

4

3 回答 3

1

实际上,从理论上讲,脚本的位置对此并不重要。jQuery.ready() 的要点是,在整个 DOM 加载之前,内部函数不会运行。“整个 DOM”包括页面的页脚和您正在等待的 Javascript 文件。但是,它们也有可能在初始化之前也在等待 DOM,因此首先调用 jQuery 的 ready 函数。

不过,您的一些时间思考术语有点难以理解 - 请记住,在您的浏览器开始解析任何 HTML 之前,PHP 会在很长很长时间(计算机方面)将其整个文档写给用户。

于 2013-05-16T19:19:32.633 回答
1

您可以将代码块移动到正确的位置,或者尝试以下操作:

开始你的PHP代码$footer = "";

然后你可以做$footer .= "<script>jQuery(document).ready(...)</script>";

终于在正确的地方了echo $footer;

于 2013-05-16T19:20:06.637 回答
0
  • 编辑你的functions.php文件
  • 将脚本包含在 php 函数中,例如:

    <?php
    function my_javascript_function_call(){
    <script>
    ....
    </script>
    }
    ?>
    
  • 现在添加这个功能

    add_action('wp_footer', 'function my_javascript_function_call');

javascript 将在您的页脚中触发.. 快乐编码 :)

于 2013-05-20T07:15:09.343 回答