我有一个iframe,我想制作if条件,如果iframe源等于div应该显示的一个伪装页面:
示例
if(getElementById('iframe').src = 'someurl'){
getElementById('div').style.display. = 'block';
}
问题
我不是JS的专家,但是当我使用这个脚本时,iframe会在加载主页面时自动加载“someurl”,这是我不想要的,我希望在iframe源更改时显示div通过链接“someurl”。链接工作正常,它会更改iframe src,但if语句不起作用。
答案 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的想法不仅仅是常数应该留下比较的一部分。如果你不小心写了作业而不是比较,我会得到更明确的错误。