javascript - jQuery Ajax-load 替换 IE9 中的页面而不是 div(无需开发人员工具模式切换)

标签 javascript jquery ajax internet-explorer

我在一个网站上工作,其中一个页面有一个文章列表和一个根据特定关键字过滤这些文章的选项。所有关键字都是链接,并列在列表的右侧。为了获得正确的 URL,每个关键字上的链接都包含 ajaxURL 的一部分,它会为给定的关键字提供正确的响应。此外,我得到了一个脚本,它向所有链接添加了一个“点击”事件,并将最后一个必需的参数附加到 ajaxURL。我使用 jQuery 的“加载”函数“重新加载”列表,如下所示:

$('a.keyword').click(function(event){
    event.preventDefault();

    // Other logic

    $('.list').load(ajaxURL);
}

但是,在 IE9 中使用过滤器时,“ajaxURL”的内容会加载到整个页面中。也就是说,整个页面都替换为结果列表。我认为这可能是我在每个链接上获得的“点击”事件上仅使用“event.preventDefault()”的问题,因此我添加了多种替代方案:

event.stopPropagtion()
return false
if(event.preventDefault){
    event.preventDefault();
} else {
    event.returnValue = false;
}

经过几个小时的调试,尝试了这些的不同组合,并使用 IE 中提供的开发者工具尝试了 IE7、IE8 和 IE9,我意识到我第一次用 IE9 打开页面(没有打开开发者工具),我得到上面描述的问题。但是,当我打开开发人员工具并选择 IE8 时,一切正常!当我将它改回 IE9 时,也会发生同样的情况! (在这种情况下,我使用了上面的所有替代方案。)

出于某种原因,这些转换使其有效!我不知道如何解决这个问题。我不能强制用户打开开发者工具并切换模式来让我工作。 :P 有什么想法吗?开发人员工具是否添加了可以执行此操作的功能?

我很感激在这件事上的任何帮助! :-)

附言。它在 Chrome、++ 中运行良好。

最佳答案

我唯一能想到的就是在你的脚本中加入 console.log()。在您打开开发人员工具之前,该语句会在 IE 中引发 Javascript 错误。

如果发生的时间早于您在问题中提供的代码,那么您的脚本的其余部分可能不会得到评估,并且您的事件处理程序根本不会被绑定(bind),导致链接只是常规链接。

关于javascript - jQuery Ajax-load 替换 IE9 中的页面而不是 div(无需开发人员工具模式切换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299525/

相关文章:

javascript - 为什么用 'this' 填充的 JavaScript var 会随着 'this' 的变化而变化?

javascript - javascript中的动态值到对象中

javascript - 从 html 更改 AngularJS url/route - javascript 代码

jquery - spring boot中ajax删除方法

javascript - 如何制作 JSON 的单独副本并阻止它在 angularjs 中被修改?

javascript - 如何使用鼠标滚轮滚动圆圈?

javascript - 动画命令完成后调用命令

javascript - 如何将 $(this) 引用传递给回调函数?

javascript - php 到 ajax textarea 变量不显示

javascript - 在 AngularJs 中无法加载 ng-view?