Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Firefox4/5未运行使用HTML_AJAX pear库连接到AJAX响应的JS_Php_Javascript_Ajax_Firefox_Firefox4 - Fatal编程技术网

Php Firefox4/5未运行使用HTML_AJAX pear库连接到AJAX响应的JS

Php Firefox4/5未运行使用HTML_AJAX pear库连接到AJAX响应的JS,php,javascript,ajax,firefox,firefox4,Php,Javascript,Ajax,Firefox,Firefox4,我在PEAR中使用HTML_AJAX包(承认是一个旧库,但它对我来说已经运行了好几年,我不想离开我的基础设施) 我遇到的问题是,随着Firefox 4和Firefox 5的推出,使用HTML_AJAX.replace(div_target,request_page)[API将div_target替换为request_page]的响应中包含的JavaScript已经停止工作 它可以在Chrome、IE9、Android、iPhone等上正常工作,但不能在FF4/5上正常工作 这是某种新功能、安全机

我在PEAR中使用HTML_AJAX包(承认是一个旧库,但它对我来说已经运行了好几年,我不想离开我的基础设施)

我遇到的问题是,随着Firefox 4和Firefox 5的推出,使用HTML_AJAX.replace(div_target,request_page)[API将div_target替换为request_page]的响应中包含的JavaScript已经停止工作

它可以在Chrome、IE9、Android、iPhone等上正常工作,但不能在FF4/5上正常工作

这是某种新功能、安全机制,还是仅仅是一个普通的老bug?如果这是一个bug,那么它是HTML_AJAX的bug(也就是说,您可以用jQuery来实现它)还是FF需要修复的东西

例如

此页面已存在:

<script type="text/javascript" language="JavaScript">
    function do_replace(){
        HTML_AJAX.replace("something", "index.php?key=value"); // index.php will have html mixed with JS and paste it to the div "something".
    }
</script>
<div id="something" onclick="javascript:do_replace()">This text is to be replaced</div>

函数do_replace(){
HTML_AJAX.replace(“something”,“index.php?key=value”);//index.php将HTML与JS混合,并将其粘贴到div“something”中。
}
此文本将被替换
这是index.php:

BLA BLA BLA some text maybe a <div> or something
<script type="text/javascript" language="JavaScript">
    alert("this has worked before, but stopped working on FF4&5 still works on Chrome Android etc.");
</script>
BLA BLA BLA BLA一些文本可能是
警报(“这在以前有效,但在FF4和FF5上停止有效,在Chrome Android等上仍然有效”);
我试图通过搜索找到答案,但没有找到任何结论。我很感激能在这件事上得到的任何帮助


BR Erik.

我对PEAR中的HTML\u AJAX包也有同样的问题。在AJAX调用后,Firefox4或5不会执行任何内联脚本标记。在我看来,HTML_AJAX正在打破与内联脚本相关的HTML5安全标准

对于Firefox4,在文件末尾添加一个带有脚本标记的空标记解决了这个问题,但这只是一个难看的解决方法,实际上是FF4上的一个bug,是为FF5修复的


我不想改变框架,但是HTML_AJAX远远落后于新的框架。也许我们还没有发现真正的问题。

Util.setInnerHtml检测gecko,并使用黑客来赢得性能。如果您删除该复选框,事情将得到修复。我不确定什么时候我会有机会修补并发布此版本,但这应该是一个快速的更改。

您需要设置:

var good_browser = false;
在3个文件中的3个位置,它才能工作。对我来说,这3个文件是:

  • HTML_AJAX.js
  • HTML_AJAX_lite.js
  • util.js

然后它成功了。

这就是我解决它的方法

替换

    var good_browser = (navigator.product == 'Gecko');

在3个文件中

HTML_AJAX.js
HTML_AJAX_lite.js
util.js.

谢谢你的洞察力。我已经试着联系首席程序员(@jeichorn在Twitter上),我希望他可能有时间来评论这个=)谢谢你的快速回复!我尝试在util.js(setInnerHTML函数)中将good_browser设置为false,但仍然没有成功:(要么我找错了位置,要么修复不够。请建议=)我们已经尝试了推荐的解决方案,在FF5(等)中似乎可以正常工作,但现在FF3.6的行为不正确。只是检查了一下PEAR是否已经更新了新版本,但没有这样的运气。
HTML_AJAX.js
HTML_AJAX_lite.js
util.js.