覆盖窗口= onload

4
我有一个在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>

4
你是否在Javascript的onload中检查密码?如果是这样的话,那么它很容易被绕过。 - Andrew Marshall
2
如果您的密码可以通过网页上的JavaScript被覆盖,那么用户只需要关闭JavaScript就可以查看页面了,对吗? - dstarh
@AndrewMarshall 不,它是通过一个与onload无关的插件来检查密码的。 - Rob
这里的细节不足。代码呢? - airportyh
罗布:所以你 不想 在用户未经授权时加载地图,是吗?因此,您需要确保脚本标记和地图 div 放在由授权插件控制的页面部分中(如果未经授权,则不应该通过“查看源代码”在页面上看到它们被呈现)。 - airportyh
2个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接