2

我忘记在位于此处的最后一个问题中包含“在一页中多次运行”:Create iframe with javascript appending to a div

我需要在同一页面内的多个 div 上运行代码。现在下面的代码只在最后一个 div 上运行一次。例如,如果我有 3 个 div,则所有 3 个都应该附加一个 iframe。常规的 JavaScript。尽量不使用 JQuery。

window.onload = function(){
var link = "http://www.somesite.com"
var iframe = document.createElement('iframe');
iframe.frameBorder=0;
iframe.width="300px";
iframe.height="250px";
iframe.id="randomid";
iframe.setAttribute("src", link);
document.getElementById("ad54").appendChild(iframe); //<--this id will be dynamically generated to match div's
}


<div class="ad" id="1"></div>
<div class="ad" id="2"></div>
<div class="ad" id="3"></div>

编辑:在 IE9、Chrome、Safari、Firefox 和歌剧中测试。此代码有效。不需要 JQuery 或循环。此代码将在您使用它的任何地方创建 iframe。

var link = "http://www.somesite.com"
document.write(iframe);
var myIframe = parent.document.getElementById("randomid");
myIframe.height = 250;
myIframe.width = 300;
myIframe.src = link;
myIframe.style.border = "0px";
myIframe.style.padding = "0px";
4

2 回答 2

1
window.onload = function() {
  var elements = document.getElementsByTagName('div');
  for (var i = 0; i < elements.length; i++) {
    append_iframe( elements[i] );
  }
}

function append_iframe( div ) {
    var link = "http://www.somesite.com"
    var iframe = document.createElement('iframe');
    iframe.frameBorder=0;
    iframe.width="300px";
    iframe.height="250px";
    iframe.id="randomid";
    iframe.setAttribute("src", link);
    div.appendChild(iframe);
}
于 2012-04-24T18:22:48.293 回答
0

不是 jQuery 人,但我认为这行得通

$("div").each(function(d) {
    var link = "http://www.somesite.com"
    var iframe = document.createElement('iframe');
    iframe.frameBorder=0;
    iframe.width="300px";
    iframe.height="250px";
    iframe.id="randomid";
    iframe.setAttribute("src", link);
    this.appendChild(iframe);
});
于 2012-04-24T18:24:57.560 回答