使用 --- innerHTML = "...<a href='http://...'>HttpLink</a>..." 在 javascript 函数中创

Posted

技术标签:

【中文标题】使用 --- innerHTML = "...<a href=\'http://...\'>HttpLink</a>..." 在 javascript 函数中创建链接【英文标题】:create link in javascript function with --- innerHTML = "...<a href='http://...'>HttpLink</a>..."使用 --- innerHTML = "...<a href='http://...'>HttpLink</a>..." 在 javascript 函数中创建链接 【发布时间】:2012-07-20 06:25:54 【问题描述】:

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

【问题讨论】:

【参考方案1】:

由于您正在创建一个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"));

【讨论】:

【参考方案2】:

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

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

你应该改变它的属性,用img11.href='http://xyz.com';设置href

【讨论】:

以上是关于使用 --- innerHTML = "...<a href='http://...'>HttpLink</a>..." 在 javascript 函数中创的主要内容,如果未能解决你的问题,请参考以下文章

关于JavaScript使用innerHTML动态输出多个嵌套双引号字符串的问题

如何在没有 innerHTML = ""; 的情况下清除 div 的内容

jquery中span怎么使用innerhtml赋值?<span id="aa"></span>

使用 Selenium 的 text 和 innerHTML 之间的区别

使用“innerHTML”时出现奇怪的错误..?

我们如何测试 `div.innerHTML=""` 是不是会占用内存直到页面刷新或浏览器关闭?