3

我正在学习用 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 部分)?

4

2 回答 2

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"));
于 2012-07-21T00:22:10.467 回答
3

您的代码是在原始代码中创建另一个 HTML 页面。这是错误和无效的。这是因为某些浏览器可以原谅和纠正您的代码甚至可以正常工作的事情。

如果您正在创建超链接元素,您应该使用 innerHTML 在其中添加文本或图像或其他内联元素。

您应该更改其属性以设置 hrefimg11.href='http://xyz.com';

于 2012-07-21T00:23:54.333 回答