通过插件加载.js文件时出现问题

时间:2012-12-14 作者:Jason

http://jsfiddle.net/ambiguous/7L4WZ/ 作品它删除空的<p></p> 标签,然后一些,但我不能git它从我的插件工作。

    $(\'p\').each(function() {
        var $this = $(this);
        if($this.html().replace(/\\s|&nbsp;/g, \'\').length == 0)
            $this.remove();
    });
WP自动加载jquery,所以我可以只加载。js文件从主插件文件中说,如下所示:

<script type="text/javascript" src="<?php plugin_dir_url( __FILE__ ); ?>js/jquery.js"></script>
还是需要使用wp\\u enqueue\\u script()?

当我把它作为<script> 它作为第一行加载,甚至在<!DOCTYPE> 但在加载脚本时会发出此错误:

jquery.js:1SyntexError: Unexpected token \'<\'
jquery.js:-1Resource interpreted as Script but transferd wiht MINE type text/html
jquery内部。js文件我收到此错误:

jquery.js:6SuntaxError: Invalid character \'/u8203\'
当我在wp\\u enqueue\\u script()下加载时,我不会得到如上所述的twp页面错误,但仍然会得到与中相同的错误。js文件:

jquery.js:6SuntaxError: Invalid character \'/u8203\'
对于芯片。。。

mycolplugin。php是在插件激活时加载的,下面是处理的部分。js文件。

上面我只定义了一些变量。。。然后

    add_action(\'wp_enqueue_scripts\', \'add_stylesscripts\');

    function add_stylesscripts() {

        // css:

            // here I load a some stylesheets...removed for sapce

      // javascript
            wp_register_script( \'wlmm-js_custom\', plugin_dir_url( __FILE__ ) . \'js/jquery.js\', false );
            wp_enqueue_script (\'wlmm-js_custom\');
    }
然后我包括一些其他文件。。。终止

这个js文件在排队时正在加载,但中存在脚本错误。js代码,但。js代码在JSFIDLE中运行良好。

所以我的问题是:

1) 我在排队吗。js properly2)我甚至需要排队。js文件,我应该以3)的形式运行它吗。js代码在JSFIDLE中工作,但在通过插件加载时不工作?

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您的javascript中有一个无效字符,大多数字体(unicode 8203)都无法呈现该字符,这就是为什么您看不到它的原因。如果我将您的代码从JSFIDLE中复制出来,粘贴到js文件中,然后将其放到浏览器中,我可以看到最后一行的字符。

就您的排队问题而言,是的,您应该将文件排队,而不是直接插入脚本标记。

但我发现您的排队可能存在两个问题-

您没有将jQuery设置为依赖项。如果jQuery没有在主题或插件的其他位置排队,脚本将失败。

您的脚本应该封装在页面加载完成后运行它的东西中,如jQuery(document).ready. 否则,脚本将在DOM中存在其作用的元素之前运行。还要注意,WordPress jQuery位于noConflict mode, 因此,您应该通过以下方式引用jQuery对象jQuery 而不是$:

jQuery(document).ready(function($){
    $(\'p\').each(function() {
        var $this = $(this);
        if($this.html().replace(/\\s|&nbsp;/g, \'\').length == 0)
            $this.remove();
    });
});

结束