我有一个iframe:
<iframe id="frame" name="frame" src="test.html"></iframe>
现在,我想获取id或名称iframe并提醒它,我用过:
if (document.getelementbyid('frame') = frame) alert('OK');
但它没有用。
答案 0 :(得分:2)
var iframe = document.querySelector("iframe");
if(iframe .getAttribute("id") == "frame") {
alert('iFrame has an ID called frame');
}
if(iframe .getAttribute("name") == "frame") {
alert('The iFrame has a NAME called frame');
}
答案 1 :(得分:1)
如果你想检查iframe是否存在,然后是id和name属性试试这个
el = document.getElementById('frame')
if (el != null) {
alert('id :' + el.id)
if (el.name!=""){
alert('name: ' + el.name)
}
else{
alert('frame do not have name attribute')
}
}else{
alert('frame do not exist')
}
答案 2 :(得分:1)
只是简单地扫描元素的DOM是一回事:
var iframe = document.getElementById("frame"); // Note the captialization!
但是,它不会为您提供id
或name
属性值。你需要更进一步:
console.log(iframe.id, iframe.name);
此外,JavaScript区分大小写,您在.getElementById()
的调用中存在一些大写错误。
此外,仅通过id
获取元素以将其与同一id
进行比较是没有意义的。无论你想做什么,都有更好的方法。
最后,document.write()
的用例非常有限。如果要动态输出内容,请为该输出准备占位符,然后将内容动态注入先前准备的容器中。在许多情况下,使用document.write()
将导致卸载整个当前加载的文档。
var p = document.getElementById("output");
var iframe = document.getElementById("frame"); // Note the captialization!
console.log(iframe.id, iframe.name);
// When comparing values in JavaScript, you need the double equal sign operator (==)
// which converts the types of the operands to the same type and then compares them,
// or the triple equal sign (===) operator which just compares the operands without
// data type conversion. A single equal sign will assign a value and, if used like
// you had it, would cause your if condition to always be true
if (document.getElementById('frame').id === "frame"){
// Update the output area with the dynamic content
output.textContent = "OK!";
} else {
output.textContent = "NOT OK!";
}
&#13;
<iframe id="frame" name="frame" src="test.html"></iframe>
<p id="output"></p>
&#13;
答案 3 :(得分:-2)
你需要注意大写字母。这应该是
document.getElementById('frame')
同样在你使用一个等号是赋值运算符的情况下。比较运算符你应该使用两个等号,所以整个如果应该是这样的
if (document.getElementById('frame') == frame) alert('OK');
但是回答这个问题:每个HTMLElement对象(你可以从像getElementById
这样的方法获得)具有id
和name
等属性,这就是你想要的。
所以你可以分配获得的iframe然后使用变量来获取id和name:
let iframe = document.getElementsByTagName("iframe")[0];
console.log(iframe.id, iframe.name);
getElementsByTagName
返回所有传递标记为元素的元素,因此如果您在网站上只有一个iframe,则可以在同一个var声明中从返回的数组中获取第一个元素。