我有一个iframe,我想做一个if条件,如果iframe源等于指定的页面,div应该显示:

示例

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

问题

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

最佳答案

  • =分配
  • ==是一个相等性测试
  • ===是不带类型转换的相等测试(通常比==

  • 使用===,而不是=

    然后,您需要正确引用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';
        }
    
    }
    

    09-25 18:32
    查看更多