我正在查看网站的来源,我在链接中看到了这个奇怪的href属性,但我无法弄清楚它在做什么。它看起来不像有效的JavaScript。我想也许这里的冒号操作符被用作访问对象popDocWin
中的函数属性javascript
的方法,但是当我试图在测试函数上模拟该语法时它不会工作
<a href="javascript:popDocWin('aviewdocument.aspx?t=4704396');">Exterior Adjustable</a>
答案 0 :(得分:3)
javascript:
是一个伪协议,意思是&#34;运行此后的代码。&#34;您可以在URL有效的任何地方使用它(在浏览器上下文中)。在这种情况下,点击链接&#34;跟随&#34;链接和跟随链接的行为运行JavaScript而不是去任何地方。 (这也是bookmarklets工作的方式。)因此javascript:
部分不是JavaScript,只是之后部分
然而,看起来的内容是有效的JavaScript:如果它不在网址中,则会创建labelled statement。 JavaScript中标记语句的主要用途是打破内部循环中的外部循环,如下所示:
var x, y;
outer: for (x = 0; x < 5; ++x) {
for (y = 0; y < 5; ++y) {
if (x === 2 && y === 3) {
break outer;
}
snippet.show("x = " + x + ", y = " + y);
}
}
输出:
x = 0, y = 0 x = 0, y = 1 x = 0, y = 2 x = 1, y = 0
请注意x
循环中y
循环是如何终止的。
var snippet = {
show: function(msg) {
document.body.insertAdjacentHTML("beforeend", "<p>" + msg + "</p>");
}
};
var x, y;
outer: for (x = 0; x < 3; ++x) {
for (y = 0; y < 3; ++y) {
if (x === 1 && y === 1) {
break outer;
}
snippet.show("x = " + x + ", y = " + y);
}
}
&#13;
答案 1 :(得分:2)
冒号不在函数调用之前,它在javascript之后!
告诉你的浏览器它应该在冒号后执行javasript代码。
答案 2 :(得分:1)
好吧,href不是您的浏览器需要javascript代码的地方,因此javascript:
告诉浏览器它应该将其后面的内容视为javascript。