JQuery UI插件在IE7中不起作用?

时间:2015-01-28 作者:1TC7

我想从中使用对话框this plugin, 但它与IE7不兼容。当我在Internet Explorer的IE7模拟器中运行它时,对话框呈现出奇怪的效果。部分透明,可拖动/可调整大小不起作用,标题消失。

据我所知,问题似乎与以下其中一个(或两者)有关:

控制台显示IE7不支持“querySelectorAll”。是否有解决方法this, 这建议在doctype之前添加一条注释——但我不知道如何在WordPress中这样做

1 个回复
SO网友:kaiser

首先是坏消息:我们无法修复您的JS问题(至少只要错误来自core附带的jQuery UI版本,而不是您的自定义定义)。这是WordPress的核心问题。当你看到SVN trunk, 尤其地the main (and only) PHP file 在该文件夹中,您将看到插件甚至没有附带任何脚本。。。至少我是这么想的。然后我发现它确实注册了一个脚本。

add_action( \'wp_enqueue_scripts\', \'jquiw_enqueue_scripts\' );
重点是,我无法通过搜索找到脚本js (文件扩展名),因为插件执行以下操作:

function jquiw_initialize_scripts() {

        $options = get_option( \'jquiw_options\' );

        /* If jQuery code text box not empty then add to header. */
        if ( ! empty( $options[\'txtar_jquery_code\'] ) ) {
                echo "<script type=\\"text/javascript\\">\\r\\n";
                echo $options[\'txtar_jquery_code\'] . "\\r\\n";
                echo "</script>\\r\\n";
        }

        /* If custom CSS text box not empty then add to header. */
        if ( ! empty( $options[\'txtar_override_css\'] ) ) {
                echo "<style type=\\"text/css\\">\\r\\n";
                echo $options[\'txtar_override_css\'];
                echo "\\r\\n</style>\\r\\n";
        }
}
如您所见,JavaScript和样式定义来自get_option( \'jquiw_options\' ). 当我们查看插件文件的其余部分时,我们会看到<textarea name="jquiw_options[txtar_jquery_code]"> 您在其中输入了JavaScript。并不是说将JavaScript之类的可执行文件保存到DB中是完全不好的bad 问题是当你不消毒时:

function jquiw_init() {
        /* Make sure we always have a theme selected. */
        $tmp = get_option( \'jquiw_options\' );
        if ( ! isset( $tmp[\'drp_jquery_theme\'] ) ) {
                $tmp["drp_jquery_theme"] = \'smoothness\';
                update_option( \'jquiw_options\', $tmp );
        }
        register_setting( \'jquiw_plugin_options\', \'jquiw_options\' );
}
正如您所看到的,没有什么可以阻止任何人保存恶意代码。简而言之:放下插件,注册你需要的jQuery UI,然后编写你自己的.js 包含脚本定义的文件。

自己使用依赖项API-Aquick guide/"How-To" for registering scripts and styles.

您可以通过Google CDN获取CSS。

$theme = \'smoothness\';
"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/{$theme}/jquery-ui.css"
然后只需添加jQuery UI:

wp_enqueue_script( \'jquery-ui-core\' );
最重要的是,您只需将所需的插件排队并添加即可jquery-ui-core 作为获得正确加载顺序的依赖项:

wp_enqueue_script( \'jquery-ui-accordion\', null, array( \'jquery-ui-core\', ) );
最后,从自定义文件中注册定义。在这里,您可以避免使用您支持的浏览器不喜欢的所有内容。

确保wrap that up in a custom plugin 你自己的。

结束

相关推荐

如何在WordPress站点上使用这个jQuery脚本?

我一直在努力在wordpress网站上设置jquery列表文件。这是代码笔中的脚本和html:http://codepen.io/javve/pen/bBfgD我的问题是。示例中有html,其中链接了脚本。我是否可以将html复制到自定义页面,或者是否需要在页眉/页脚中设置它们,或者为它们赋形?第二个问题是关于jquery的:var monkeyList = new List(\'test-list\', { valueNames: [\'name\'], page: 5, plu

JQuery UI插件在IE7中不起作用? - 小码农CODE - 行之有效找到问题解决它

JQuery UI插件在IE7中不起作用?

时间:2015-01-28 作者:1TC7

我想从中使用对话框this plugin, 但它与IE7不兼容。当我在Internet Explorer的IE7模拟器中运行它时,对话框呈现出奇怪的效果。部分透明,可拖动/可调整大小不起作用,标题消失。

据我所知,问题似乎与以下其中一个(或两者)有关:

控制台显示IE7不支持“querySelectorAll”。是否有解决方法this, 这建议在doctype之前添加一条注释——但我不知道如何在WordPress中这样做

1 个回复
SO网友:kaiser

首先是坏消息:我们无法修复您的JS问题(至少只要错误来自core附带的jQuery UI版本,而不是您的自定义定义)。这是WordPress的核心问题。当你看到SVN trunk, 尤其地the main (and only) PHP file 在该文件夹中,您将看到插件甚至没有附带任何脚本。。。至少我是这么想的。然后我发现它确实注册了一个脚本。

add_action( \'wp_enqueue_scripts\', \'jquiw_enqueue_scripts\' );
重点是,我无法通过搜索找到脚本js (文件扩展名),因为插件执行以下操作:

function jquiw_initialize_scripts() {

        $options = get_option( \'jquiw_options\' );

        /* If jQuery code text box not empty then add to header. */
        if ( ! empty( $options[\'txtar_jquery_code\'] ) ) {
                echo "<script type=\\"text/javascript\\">\\r\\n";
                echo $options[\'txtar_jquery_code\'] . "\\r\\n";
                echo "</script>\\r\\n";
        }

        /* If custom CSS text box not empty then add to header. */
        if ( ! empty( $options[\'txtar_override_css\'] ) ) {
                echo "<style type=\\"text/css\\">\\r\\n";
                echo $options[\'txtar_override_css\'];
                echo "\\r\\n</style>\\r\\n";
        }
}
如您所见,JavaScript和样式定义来自get_option( \'jquiw_options\' ). 当我们查看插件文件的其余部分时,我们会看到<textarea name="jquiw_options[txtar_jquery_code]"> 您在其中输入了JavaScript。并不是说将JavaScript之类的可执行文件保存到DB中是完全不好的bad 问题是当你不消毒时:

function jquiw_init() {
        /* Make sure we always have a theme selected. */
        $tmp = get_option( \'jquiw_options\' );
        if ( ! isset( $tmp[\'drp_jquery_theme\'] ) ) {
                $tmp["drp_jquery_theme"] = \'smoothness\';
                update_option( \'jquiw_options\', $tmp );
        }
        register_setting( \'jquiw_plugin_options\', \'jquiw_options\' );
}
正如您所看到的,没有什么可以阻止任何人保存恶意代码。简而言之:放下插件,注册你需要的jQuery UI,然后编写你自己的.js 包含脚本定义的文件。

自己使用依赖项API-Aquick guide/"How-To" for registering scripts and styles.

您可以通过Google CDN获取CSS。

$theme = \'smoothness\';
"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/{$theme}/jquery-ui.css"
然后只需添加jQuery UI:

wp_enqueue_script( \'jquery-ui-core\' );
最重要的是,您只需将所需的插件排队并添加即可jquery-ui-core 作为获得正确加载顺序的依赖项:

wp_enqueue_script( \'jquery-ui-accordion\', null, array( \'jquery-ui-core\', ) );
最后,从自定义文件中注册定义。在这里,您可以避免使用您支持的浏览器不喜欢的所有内容。

确保wrap that up in a custom plugin 你自己的。