函数调用前的冒号运算符“:”(javascript)

时间:2014-10-03 09:15:43

标签: javascript asp.net colon

我正在查看网站的来源,我在链接中看到了这个奇怪的href属性,但我无法弄清楚它在做什么。它看起来不像有效的JavaScript。我想也许这里的冒号操作符被用作访问对象popDocWin中的函数属性javascript的方法,但是当我试图在测试函数上模拟该语法时它不会工作

<a href="javascript:popDocWin('aviewdocument.aspx?t=4704396');">Exterior Adjustable</a>

3 个答案:

答案 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循环是如何终止的。

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:2)

冒号不在函数调用之前,它在javascript之后!

告诉你的浏览器它应该在冒号后执行javasript代码。

答案 2 :(得分:1)

好吧,href不是您的浏览器需要javascript代码的地方,因此javascript:告诉浏览器它应该将其后面的内容视为javascript。