如何使用javascript获取iframe的ID或名称?

时间:2017-07-05 17:58:33

标签: javascript html

我有一个iframe:

<iframe id="frame" name="frame" src="test.html"></iframe>

现在,我想获取id或名称iframe并提醒它,我用过:

if (document.getelementbyid('frame') = frame) alert('OK');

但它没有用。

4 个答案:

答案 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!

但是,它不会为您提供idname属性值。你需要更进一步:

console.log(iframe.id, iframe.name);

此外,JavaScript区分大小写,您在.getElementById()的调用中存在一些大写错误。

此外,仅通过id获取元素以将其与同一id进行比较是没有意义的。无论你想做什么,都有更好的方法。

最后,document.write()的用例非常有限。如果要动态输出内容,请为该输出准备占位符,然后将内容动态注入先前准备的容器中。在许多情况下,使用document.write()将导致卸载整个当前加载的文档。

&#13;
&#13;
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;
&#13;
&#13;

答案 3 :(得分:-2)

你需要注意大写字母。这应该是

document.getElementById('frame')

同样在你使用一个等号是赋值运算符的情况下。比较运算符你应该使用两个等号,所以整个如果应该是这样的

if (document.getElementById('frame') == frame) alert('OK');

但是回答这个问题:每个HTMLElement对象(你可以从像getElementById这样的方法获得)具有idname等属性,这就是你想要的。

所以你可以分配获得的iframe然后使用变量来获取id和name:

let iframe = document.getElementsByTagName("iframe")[0];
console.log(iframe.id, iframe.name);

getElementsByTagName返回所有传递标记为元素的元素,因此如果您在网站上只有一个iframe,则可以在同一个var声明中从返回的数组中获取第一个元素。