Javascript隐藏对象元素数据值的子节点

时间:2013-07-26 01:01:55

标签: javascript html

我用谷歌搜索并给出了元素类型'对象'的通用性质我没有在大海捞针中找到回答我问题的针,这已经过了几个小时所以我承认失败并寻求帮助。

我有:

<object id ="siteconfigwindow" name="siteconfigwindow" type="text/html" 
        data="blank.html" width="100%" height="600" 
        onload="hideeditcontrols()">

我有javascript成功地将对象元素的数据值更改为html页面,其内容包含我希望隐藏的某些控件。

document.getElementsByName("siteconfigwindow")[0].data = url;
成功加载的

url包含:

<div style="text-align:center;">
    <input id="nodeAdd" type="submit" name="addButton">
    <input id="nodeEdit" type="submit" name="editButton">
    <input id="nodeDelete" type="button" name="nodeDelete">
</div>

在查看源页面并发出控制台命令(例如:

)时,可以轻松隐藏我想隐藏的控件
document.getElementById("nodeAdd").parentNode.style.visibility = 'hidden'

但是当使用object元素在自定义页面上通过控制台发出时,同样的命令会出现null对象错误。

如果有人知道显示源页面并隐藏该div的更好方法,我就全部废弃整个代码。

这两个页​​面都在我的内部网和同一台服务器上,因此我不认为这与安全性有关。 我提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

只要您没有遇到同样的问题,就可以使用iframe执行此操作。

关键是访问iframe元素的contentDocument属性(适用于Chrome - 对于跨浏览器,请参阅:iframe.contentDocument Not Working in IE8 and ...

例如 - 此页面:

<html>
<head>
</head>
<body>

<iframe id='siteconfigwindow' src=''></iframe>

<script>
    document.getElementById("siteconfigwindow").src = 'test.html';
    document.getElementById("siteconfigwindow").addEventListener('load', function() {
        this.contentDocument.getElementById("nodeAdd").parentNode.style.visibility = 'hidden'
    });
</script> 

</body>
</html>

成功加载并隐藏您上面描述的按钮组:

<html>
<head>
</head>
<body>

    <div style="text-align:center;">
        <input id="nodeAdd" type="submit" name="addButton">
        <input id="nodeEdit" type="submit" name="editButton">
        <input id="nodeDelete" type="button" name="nodeDelete">
    </div>

</body>
</html>