1

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

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

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

所以我的问题是:

  1. 可能是已经定义了一个正在加载的 JS 函数的问题onload吗?
  2. 如果有,如何处理?

我已经尝试将函数声明放在 HTML 中的不同位置,从标记中删除并放入标记中,但仍然不起作用。

4

2 回答 2

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,该 iframe 由另一个来源的另一台服务器提供服务。由于同源政策,您不能这样做。例如,请参阅此相关问题:Change src Iframe with cross-domain

于 2013-05-20T12:45:56.067 回答
0

尝试使用这个 jQuery。

<script type="text/javascript"> 

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

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

    });

</script>

让我知道这是否是您要找的?

或尝试

window.onload = function replaceSrc()
    {
        document.getElementById("ytplayer").src = "blablabla";
    }
于 2013-05-20T13:33:03.793 回答