覆盖window = onload

时间:2011-10-31 14:10:31

标签: php javascript wordpress

我在wordpress中有一个页面,我希望通过用户角色插件进行密码保护。在直接页面上一切正常但我有一个window.onload = function() {的页面完全覆盖了密码功能。

我想在检查用户是否登录后立即加载页面。

更新

我正在使用this plugin而我只有函数:

<script type="text/javascript"> 
(function() { 

window.onload = function() { 
 var map = new google.maps.Map(document.getElementById('map'), options);
...
} } )
</script>

然后加载这个div:

<div id="map" style="width:100%; height:100%"></div>

2 个答案:

答案 0 :(得分:2)

您必须使用addEventListenerattachEvent来加载多个功能。如果您想使用window.onload = ..,请使用以下函数中最后一个else块中的代码:

function addEvent(name, func) {
    if (window.addEventListener) {
        window.addEventListener(name, func, true);
    } else if(window.attachEvent) {
        window.attachEvent('on' + name, func);
    } else {
        var other_func = typeof window['on'+name] == "function" ? window['on'+name] : function(){};
        window['on' + name] = function(ev){
            func(ev);
            other_func(ev);
        }
    }
}

addEvent('load', function(){
   //Load function 
});

答案 1 :(得分:1)

不是将其直接分配给onload属性,而是将其添加为事件侦听器

https://developer.mozilla.org/en/DOM/element.addEventListener

对于IE版本,您需要使用attachEvent&lt; 9。

http://msdn.microsoft.com/en-us/library/ms536343(v=vs.85).aspx

如果您使用的是jQuery或Prototype等框架,则可以将其抽象出来,这样您就不必担心不同的浏览器了。