我正在尝试为我的 .HTA 页面例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Some title</title>
</head>
<body>
<script>
var headHTML = document.getElementsByTagName('head')[0].innerHTML;
var headHTML = headHTML.replace('Some','Another');
document.getElementsByTagName('head')[0].innerHTML = headHTML;
</script>
</body>
</html>
但是我得到错误:
无法设置内部 HTML 属性。此目标元素无效 操作。
为什么以及如何解决问题?
标题只是一个例子。我需要替换头部和身体中不同元素的内部 HTML。
这是特定于 IE 的问题,而不是 HTA 问题。在IE中,head
和title
元素的innerHTML
都是只读的(以及其他一些元素(。但是,可以将元素追加到head
。例如,创建一个链接元素以向文档添加样式表:
var elem = document.createElement('link');
elem.rel = 'stylesheet';
elem.type = 'text/css';
elem.href = '....';
document.documentElement.appendChild(elem);
appendChild
方法也可用于向document.body
添加元素。
参见 MDN 的 createElement 和 appendChild。
你有没有试过把你的JS
放
<script language="javascript">
</script>