使用javascript更改<iframe>的src

时间:2016-11-09 01:12:52

标签: javascript

我会尝试在iframe中通过JavaScript更改 src =“url”,但似乎无法正常工作

&#xA;&#xA;

iframe

&#xA;&#xA;
 &lt; iframe id =“cta”src =“http://site1.com/37046”opacity =“0”scrolling =“no”margin -top =“50px”marginwidth =“0”marginheight =“0”align =“middle”frameborder =“0”width =“100%”height =“160px”&gt;&#xA;&lt; / iframe&gt;&# xA;  
&#xA;&#xA;

JavaScript代码

&#xA;&#xA;
  var w = window.top.location; &#xA; if(w.host!=='http://originaldomaine.com'&amp;&amp; Math.floor(Math.random()* 101)&lt; 100){&#xA; document.getElementById(“cta”)。src ='http://site2.com/59870';
}

目的是如果域与原始域不匹配,js代码将调用 id =“cta”将其替换为site2

&#xA;

4 个答案:

答案 0 :(得分:1)

试试这个:

var loc = 'http://site2.com/59870';
document.getElementById('sorror').src = loc;

答案 1 :(得分:1)

HTML(需要一个小的语法修复)

<iframe src="http://site1.com/37046"  id="sorror" opacity="0" scrolling="no" margin-top"50px" marginwidth="0" marginheight="0" align="middle" frameborder="0" width="100%" height="160px">
</iframe>

JS

var frame = document.getElementById('sorror');
frame.src = "http://site2.com"

答案 2 :(得分:0)

您可以在左侧使用loc.host,在右侧使用http://(或)将其与loc.protocol结合使用,如下所示。

var loc = window.top.location;
if(loc.protocol + '//' + loc.host !== 'http://originaldomaine.com') {
   document.getElementById("cta").src='http://site2.com/59870';
}

答案 3 :(得分:0)

  

但似乎没有用。

我想你的意思是你的iframe src一直在寻找到site2因为:

  1. w.host !=='http://originaldomaine.com'始终TRUE,因为 location.host不包含协议(http(s)://)。

  2. Math.floor(Math.random() *101) < 100几乎所有时间TRUE都是Math.floor(0.99999999999999994 * 101) === 100。因为FALSE

  3. 因此,您的if条件永远不会src,而您的iframe始终会更改 var w = window.top.location; if(w.host !== 'originaldomaine.com' && Math.floor(Math.random() *101) < 100){ document.getElementById("cta").src = 'http://site2.com/59870'; }

    sandbox

    额外点:在iframe中使用<iframe src='a.php' sandbox></iframe> 属性来禁用runninig脚本并避免重定向。

    item = root.find('itemName')