我的Javascript函数受到已定义的另一个JS函数的影响

时间:2013-05-20 12:42:54

标签: javascript html css

我的HTML / CSS / JS页面包含<head>标记内定义的CSS和JS函数(不是我自己创建的)。页面在开头和下面显示标题,有四个选项卡由CSS样式定义,使用JS动态工作。然后我想添加我自己的JS函数,它应该加载onload

<script type="text/javascript"> 
    function replaceSrc()
    {
        document.getElementById("ytplayer").src = "blablabla";
    }
    window.onload = replaceSrc;
</script>

但是,在运行页面时,CSS / JS生成的所有内容都会消失(仅保留页面标题)。

所以我的问题是:

  1. 可能是已经定义了一个正在加载onload
  2. 的JS函数的问题
  3. 如果是这样,如何处理?
  4. 我已经尝试将函数声明放在HTML中的不同位置,从标记中删除并放入标记,但仍然无效。

2 个答案:

答案 0 :(得分:7)

当你(或其他人)使用window.onload = someFunction时,你删除所有先前附加的加载事件处理程序。

您应该使用addEventListener

window.addEventListener('load', replaceSrc);

如果您想与旧的IE浏览器兼容,请使用

if (window.addEventListener){
  window.addEventListener('load', replaceSrc, false);
} else if (window.attachEvent) {
  window.attachEvent('onload', replaceSrc);
}

编辑:从您的评论中,您似乎正在尝试更改由另一个来源的其他服务器提供服务的iframe的src。由于same origin policy,您无法执行此操作。例如,请参阅此相关问题:Change src Iframe with cross-domain

答案 1 :(得分:0)

尝试使用jQuery这一点。

<script type="text/javascript"> 

    $("document").ready(function(){

        $("#ytplayer").attr('src', 'blablabla');

    });

</script>

如果您正在寻找,请告诉我?

或尝试

window.onload = function replaceSrc()
    {
        document.getElementById("ytplayer").src = "blablabla";
    }