javascript - 如何使用window.onload?

标签 javascript

我正在使用 MVC 重构网站。一组带有 javascript、php、html 等的大页面正在变成一系列 Controller 和 View 。我正在尝试以模块化方式进行操作,以便将 View 拆分为“模块”,我可以在需要时在其他页面中重复使用

例如。 "view/sea​​rchform 只显示一个 div 和 searchform "view/display_events 显示事件列表 等等。

其中一个旧页面应该加载带有标记的谷歌地图。

在其余代码中,我可以如下识别相关位

<head>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=blablabla" type="text/javascript"></script>

<script type="text/javascript">
//<![CDATA[
function load() {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        var point = new GLatLng(<?php echo ($info->lat && $info->lng) ? $info->lat .",". $info->lng : "51.502759,-0.126171"; ?>);
        map.setCenter(new GLatLng(<?php echo ($info->lat && $info->lng) ? $info->lat .",". $info->lng : "51.502759,-0.126171"; ?>), 15);
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addOverlay(new GMarker(point));
        var marker = createMarker(point,GIcon(),"CIAO");
        map.addOverlay(marker);
    }
}
//]]>
</script>
</head>

...然后

<body onload="load()" onunload="GUnload()">

...最后是应该显示 map 的这个 div

<div id="map" style="width: 440px; height: 300px"> </div>

对js了解不多,但我的理解是这样

a) 我必须在我正在编写的 View 模块中包含脚本(直接在 HTML 中?我更愿意加载一个单独的脚本)

b) 我必须使用等效于 body onload 来触发该函数...(显然我认为没有 body 标签。在​​我的无知中我已经尝试过 div onload=.... 但似乎没有正在工作:)

你建议我做什么? 我读过 window.onload 但不知道正确的语法是什么。

请记住,页面的其他部分包括在页脚之后调用的其他 js 函数(例如,google adsense)。

最佳答案

您可以使用 js 将处理程序附加到窗口加载事件,因此您不需要标记。

// crossbrowser event binding from http://www.quirksmode.org/js/eventSimple.html
//function addEventSimple(obj,evt,fn) {
//    if (obj.addEventListener)
//      obj.addEventListener(evt,fn,false);
//    else if (obj.attachEvent)
//      obj.attachEvent('on'+evt,fn);
//}

// using Google API's event functions
GEvent.addDomListener(window, "load", load);
GEvent.addDomListener(window, "unload", GUnload);

function load() {
    // your load function
}

将它放在 View 的脚本标记中,加载函数将在加载窗口后调用。

google API 可能还提供了一种附加加载事件的方法,但我不熟悉它。

关于javascript - 如何使用window.onload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593738/

相关文章:

javascript - 带有远程脚本的 Django-Compressor(谷歌地图 API)

javascript - 无法使用 Angular 编辑记录

javascript - 通过单击返回 div 的原始内容

javascript - 如何切换按钮以将标题更改为不同的颜色并返回原始颜色

javascript - 用于 API 调用的工作搜索框

javascript - 语法错误 : Illegal return statement - searching for string in url

javascript - 如何根据屏幕宽度定义变量?

javascript - AngularJS UI 路由器嵌套状态不工作

javascript - 除了输入表单之外,SQL 注入(inject)还能发生吗?

javascript - 使用 jquery 阅读器时图像不显示