Jquery $(window).load()无法在Chrome,Opera和Safari上运行

时间:2011-12-01 00:54:32

标签: javascript jquery browser window onload

我想解释一下我的情况。

我正在撰写一个网站,其中一个网页正在使用谷歌地图。

该网站是cms网站,正在使用ektron

所以,我必须使用ektron google map因为它提供了客户想要的一些功能。

Ektron只是使用google map并使用ajax与自己的逻辑结合。

我知道详细信息,但每当我尝试更改ektron map的属性时,我都需要点击searchzoom inzoom out或移动地图。

只有在我这样做之后,才会改变属性。如果没有,他们就没有。

所以,我想到了快捷方式并以编程方式点击了search的{​​{1}}按钮。

然后,我再次以编程方式将控件添加到ektron map

我无法写panel因为我发现在地图加载之前有效。

所以,我编写了这段代码以使地图有效。

document.ready

有效。 <script type="text/javascript"> $(window).load(function () { $("#__GetAddr").click(); }); </script> 是搜索按钮ID,我会在所有内容加载后单击它。

但是当我使用chrome时问题就开始了。

我发现__GetAddr无法使用chrome,safari和opera。

我用谷歌搜索了一段时间,但找不到任何可靠的答案。

是否有任何明确的替代方式可以在这3个浏览器中工作,而它仍适用于IE7,8,9和Firefox。

非常感谢。

大家好,我有一个解决方案。

我认为这是最好的解决方案。但它确实有效。

$(window).load()

我希望有一个更好的。 :P

5 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
            if (navigator.appName == "Microsoft Internet Explorer") {
                $(window).load(function () { $("#__GetAddr").click(); });
            }
            else {
                window.addEventListener('load', function () { $("#__GetAddr").click();                  }, false);
            }
</script>

答案 1 :(得分:0)

你有没有尝试过准备文件?

$(document).ready(function() {
    $("#__GetAddr").click();
});

答案 2 :(得分:0)

这不好,但如果您发现浏览器不是Chrome,则可以使用超时。但是,一旦加载,我真的会尝试从地图本身获得一些通知。

答案 3 :(得分:0)

您正在使用jQuery 3.1.0版,并且自jQuery版本1.8以来不推荐使用load事件。 load事件从jQuery 3.0中删除。相反,您可以使用on方法并绑定JavaScript load事件:

$(window).on('load', function () {
      $("#__GetAddr").click();
 });

答案 4 :(得分:-1)

您可以尝试Google在其Maps API文档中推荐的内容 - 在body标记中放置onload事件。这适用于每个浏览器:

<body onload="ready()">

然后,在脚本标记中声明下面的ready()函数:

<script type="text/javascript">
function ready() {
  $("#__GetAddr").click();
}
</script>
相关问题