在加载时添加src以嵌入

时间:2014-04-01 10:17:33

标签: javascript html embed

我有一个"嵌入"元件

<EMBED id="embed"
 width="100%" height="95%">

我需要将src添加到此标记中。

<script type="text/javascript">
var source = localStorage.mySrc;
var myEmbed = document.getElementById("embed");
myEmbed.setAttribute("src", source);
//jQuery("#embed").attr("src", localStorage.mySrc);
</script>

当我粘贴此代码开始我有错误&#34;无法调用方法&#39; setAttribute&#39; of null&#34;。当粘贴到结束时,它的工作正常,但内容已经加载并且脚本不会影响操作

2 个答案:

答案 0 :(得分:2)

  

当我将此代码粘贴到开始

您的脚本显示在<embed>元素之前。

因此,在将<embed>元素添加到DOM之前, 运行

因此,当您尝试修改<embed>元素时,它不存在。

所以不要这样做。

  

粘贴结束时,其工作正常,但内容已加载且脚本不影响操作

如果在元素存在之后修改它也不起作用,那么使用JavaScript创建整个元素。

var myEmbed = document.createElement("embed");
myEmbed.setAttribute("src", source);
document.body.appendChild(myEmbed);

答案 1 :(得分:-1)

如果在

之前添加src
<EMBED id="embed" width="100%" height="95%">

被添加到页面,给你错误是正常的

使用document.ready,以这种方式,将在加载页面时添加src并

<EMBED id="embed" width="100%" height="95%">

将添加到页面

所以:

$( document ).ready(function() {

       var source = localStorage.mySrc;
       var myEmbed = document.getElementById("embed");
       myEmbed.setAttribute("src", source);
       //jQuery("#embed").attr("src", localStorage.mySrc);

});