我用谷歌搜索并给出了元素类型'对象'的通用性质我没有在大海捞针中找到回答我问题的针,这已经过了几个小时所以我承认失败并寻求帮助。
我有:
<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的更好方法,我就全部废弃整个代码。
这两个页面都在我的内部网和同一台服务器上,因此我不认为这与安全性有关。 我提前感谢您的任何帮助。
答案 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>