1

可能存在重复(我尝试检查有关创建动态链接的问题,但它们引用了静态链接 - 我希望对用户隐藏此链接)。在 ww3 网站上测试以下代码:

<!DOCTYPE html>
<html>
<body>

<script type="text/javascript">
document.write("<a href=&quot;www.google.com&quot;>Google</a>");
</script>

</body>
</html>

我得到:

 http://www.w3schools.com/jsref/%22www.google.com%22

作为链接地址而不是 www.google.com。

我该如何纠正这个问题?以及如何使链接仅在设定的时间后出现?请注意,这是代码的简化版本以提高可读性(动态链接将包括在脚本运行时分配的两个浮点变量)。

4

4 回答 4

3

<a>标签href必须包含协议http://,否则它会链接到相对于链接所在页面的文档:

// Print quote literals, not html entities `&quot;`
document.write("<a href='http://www.google.com'>Google</a>");

的用例document.write()通常是有限的,因为它在页面加载后无法使用而不覆盖整个内容。很多时候你会想要在页面已经渲染之后创建元素。在这种情况下,您将使用document.createElement()and appendChild()

// Create the node...
var newlink = document.createElement('a');
newlink.href = 'http://www.google.com';
// Set the link's text:
newlink.innerText = "Google";

// And add it to the appropriate place in the DOM
// This just sticks it onto the <body>
// You might, for example, instead select a specific <span> or <div>
// by its id with document.getElementById()
document.body.appendChild(newlink);

顺便说一句,w3schools 不隶属于W3C,因此通常不推荐使用它们的示例,因为它们通常已过时或不完整。

于 2012-08-18T21:08:43.243 回答
2

你有2个问题:

1)您需要http://在 URL 之前,所以它是:http ://www.google.com 2)您不需要在 document.write 中使用引号,但如果您愿意,您可以执行以下 3 项之一:

document.write('<a href="http://www.google.com">Google</a>');
document.write("<a href='http://www.google.com'>Google</a>");
document.write("<a href=http://www.google.com>Google</a>");
于 2012-08-18T21:10:23.653 回答
1

使用斜杠“\”转义引号

于 2012-08-18T21:08:43.857 回答
0

要使链接成为绝对链接,请在 URL 的开头包含“http://”。写出:

<a href="http://www.google.com">

代替

<a href="www.google.com">

第二个示例将被视为相对 url,index.html例如。

于 2012-08-18T21:09:34.070 回答