防止将iframe重定向到相同的地址

时间:2014-09-25 15:21:28

标签: javascript html redirect if-statement iframe

我想阻止将iframe重定向到当前加载到其中的同一个地址。我想这样做的原因是因为我想在你被重定向到完全相同的页面时防止不必要的白色闪烁。

这是一个jsfiddle http://jsfiddle.net/8zs8mh5d/

<a href="http://www.randomwebsite.com/" target="tc">dont redirect if not from link 3</a><br>

<a href="http://www.randomwebsite.com/" target="tc">dont redirect if not from link 3</a><br>

<a href="http://day.smakkie.com/" target="tc">dont redirect if not from link 1 or 2</a><br>

<iframe id="truecontent" name="tc" src="http://www.randomwebsite.com/"></iframe>



#truecontent
{
    height:200px;
    width:400px;
}

2 个答案:

答案 0 :(得分:0)

您可能需要一些JavaScript帮助。像这样定义你的链接:

<a href="#" onclick="redirectIframe('http://www.randomwebsite.com/', 'tc')">dont redirect if not from link 3</a><br>

<a href="#" onclick="redirectIframe('http://www.randomwebsite.com/', 'tc')">dont redirect if not from link 3</a><br>

<a href="#" onclick="redirectIframe('http://day.smakkie.com/', 'tc')">dont redirect if not from link 3</a><br>

<br>

<iframe id="truecontent" name="tc" src="http://www.randomwebsite.com/"></iframe>

然后添加重定向功能

function redirectIframe(url,name) {
    var iFrame = document.getElementsByName(name)[0];

    if (iFrame.src != url) iFrame.src = url;
}

函数将检查您重定向到的URL是否与当前IFRAME源相同,如果是这种情况则返回而不重定向。

演示:http://jsfiddle.net/8zs8mh5d/1/

答案 1 :(得分:0)

您可以使用以下JavaScript:

 function confirmTarget(target) {
  current = document.getElementById('truecontent').getAttribute('src');
  if(current != target)
   document.getElementById('truecontent').src = target;
 }

修改您的链接,如:

<a href="#" onclick="confirmTarget('http://www.randomwebsite.com/')">dont redirect if not from link 3</a><br />
<a href="#" onclick="confirmTarget('http://www.randomwebsite.com/')">dont redirect if not from link 3</a><br />
<a href="#" onclick="confirmTarget('http://day.smakkie.com/')">dont redirect if not from link 1 or 2</a><br />

这是一个JSFiddle:http://jsfiddle.net/5xs3tnze/2/