【发布时间】:2011-12-01 00:54:31
【问题描述】:
我想解释一下我的情况。
我正在写一个网站,其中一个网页正在使用谷歌地图。
该网站是一个cms 网站,它使用的是ektron
所以,我必须使用ektron google map,因为它提供了一些客户想要的功能。
Ektron 只是简单的使用google map 并使用ajax 结合自己的逻辑。
我不知道细节,但每当我尝试更改该ektron map 的属性时,我需要单击search 或zoom in 或zoom out 或移动地图。
只有在我这样做之后,更改的属性才会生效。如果没有,他们不会。
所以,我想到了快捷方式并以编程方式点击ektron map 的search 按钮。
然后,我以编程方式将控件添加到 panel。
我不能写 document.ready 因为我在地图加载之前发现它可以工作。
所以,我编写了这段代码来使地图正常工作。
<script type="text/javascript">
$(window).load(function () {
$("#__GetAddr").click();
});
</script>
它有效。 __GetAddr 是搜索按钮 ID,我在加载完所有内容后单击它。
但是当我将它与 chrome 一起使用时,问题就开始了。
我发现$(window).load() 在 chrome、safari 和 opera 中不起作用。
我用谷歌搜索了一段时间,但找不到任何可靠的答案。
是否有任何明确的替代方法可以在这 3 种浏览器中工作,同时它仍然适用于 IE7、8、9 和 Firefox。
非常感谢。
大家好,我有一个解决方案。
我不认为这是最好的解决方案。但它有效。
<script type="text/javascript">
if (navigator.appName == "Microsoft Internet Explorer") {
$(window).load(function () { $("#__GetAddr").click(); });
}
else {
window.addEventListener('load', function () { $("#__GetAddr").click(); }, false);
}
</script>
我希望有一个更好的。 :P
【问题讨论】:
-
您是否遇到任何 JavaScript 错误?检查浏览器的控制台,看看在页面加载期间是否抛出任何错误。
-
我认为这不是正确的方法。从表面上看,你可能会认为“当我点击时它会起作用,所以我只需要模拟那个点击。”更好的方法是找出需要调用什么函数来设置属性,并进行正确的函数调用,而不是模拟点击。
-
@LachlanMcDonald 没有错误。只是不工作。
标签: javascript jquery browser window onload