我正在学习使用html编写,但我有一个我无法理解的问题。
以下代码适用于其他浏览器,但不适用于IE9。我知道它与innerHTML
有关,但我无法理解我为此找到的答案。
<html> <head> <script type="text/javascript">
function hw_function1() {
var img11=document.createElement("a");
img11.innerHTML = "<html> <body> <a href='http://google.de'>Google</a> </body></html>";
document.body.appendChild( img11 );
}
</script>
<body>
<a href="#" onclick="javascript:hw_function1()";>Test</a>
</body> </html>
在不改变结构的情况下我应该更改什么(如果可能,只有innerHTMl-part)?
答案 0 :(得分:5)
由于您正在创建a
元素,因此只需通过.href
属性将href指定给元素。
您可以使用.innerHTML
设置其文字内容,但这并不是一种“纯粹”的做法。
var img11=document.createElement("a");
img11.href='http://google.de';
img11.innerHTML = 'Google';
document.body.appendChild( img11 );
设置文本内容的另一种方法就是这样......
img11.appendChild(document.createTextNode("Google"));
答案 1 :(得分:3)
您的代码正在原始内容中创建另一个HTML页面。这是错误的,也是无效的。这是因为有些浏览器会宽容并纠正您的代码甚至可以正常工作的内容。
如果您正在创建超链接元素,则应使用innerHTML在其中添加文本或图像或其他内联元素。
您应该更改其属性以使用img11.href='http://xyz.com';