我遇到了一个非常奇怪的问题,它只发生在谷歌浏览器上。由于项目的规模,我无法真正提供测试用例(相信我我试过)。问题是,在将一些 html(包含脚本)加载到具有 ajax 调用的容器中之后,如下所示:
var fillView = function(data) {
viewElement.html(data);
}
$.ajax({
url: gridUrl + 'update/id/' + rowData.id + gridUrlParams,
success: fillView
});
...在我点击文档之前,所有的 javascriptdata
都不会在 google chrome 中执行。这适用于绑定到表单中输入字段的几个不同插件。我无法在任何其他浏览器中观察(或重现)任何此类效果,也没有添加任何可以执行此类操作的代码。
我尝试了几个小时来解决这个问题的核心,删除了受影响的输入字段的前半部分,然后是另一半,然后是其中的一部分……只是为了让剩下的部分发生这种情况。我还尝试为当前站点剥离/注释掉我不需要的大多数其他 javascript(不应该也没有调用)。
似乎有一个相当明显的“修复”不是修复,也只是有时有效。万一你没猜到;):
setTimeout("$('#form').trigger('click')",50);
有趣/奇怪的细节:
如果我添加alert("test");
到 javascript,它会在页面加载时立即执行,但影响 UI 的内容直到第一次单击浏览器中的任何位置时才会执行。
$% & §$}$!!!!
更新:
添加以下内容:
$('.field-block').css('background-color','#000');
对于 ajax 调用的结果,在我在浏览器窗口内单击之前什么也不做。
“我的拉丁文到此结束。” 有没有人听说过这个,看过它或者知道我可以尝试解决这个讨厌的问题。