使用iFrames的ifelse语句

时间:2011-02-14 12:25:05

标签: javascript iframe if-statement

我有一个iframe,我想制作if条件,如果iframe源等于div应该显示的一个伪装页面:

示例

if(getElementById('iframe').src = 'someurl'){
getElementById('div').style.display. = 'block';
}

问题

我不是JS的专家,但是当我使用这个脚本时,iframe会在加载主页面时自动加载“someurl”,这是我不想要的,我希望在iframe源更改时显示div通过链接“someurl”。链接工作正常,它会更改iframe src,但if语句不起作用。

3 个答案:

答案 0 :(得分:5)

  • =作业
  • ==是一个平等测试
  • ===是没有类型转换的相等测试(通常优先考虑==

使用===,而不是=

然后您需要正确引用getElementById。它是document对象的方法,而不是全局。

使用document.getElementById而不是getElementById

然后,您需要摆脱显示属性中的尾随.字符。

然后,假设您想要在遵循框架中的链接时更新此项,而不仅仅是在遵循当前页面中的链接时,您需要定期重新运行该函数以查看它是否已更改。

setInterval(yourFunctionName, 5000); 

然后,由于页面可能会远离您要查找的URL,因此您需要添加else语句

function yourFunctionName () {
    var div = document.getElementById('div'); /* Really? Your unique ID for a specific div is 'div'?! */
    if(document.getElementById('iframe').src === 'someurl'){
        div.style.display = 'block';
    } else {
      div.style.display = 'none';
    }

}

答案 1 :(得分:3)

    if(document.getElementById('iframe').src == 'someurl'){
          document.getElementById('yourdiv').style.display = 'block';
    }

使用==代替=,您可以为src分配值,而不是检查条件。

使用=====

答案 2 :(得分:0)

中有错误
if(getElementById('iframe').src = 'someurl')

=是作业,但您应该检查条件。使用==。您可以交换条件,以消除错误,像这样。这是一个例子:

if('someurl' == getElementById('iframe').src)

basick的想法不仅仅是常数应该留下比较的一部分。如果你不小心写了作业而不是比较,我会得到更明确的错误。