通常我们想用javascript:URL执行某些不改变当前显示的文档的javascript代码。要做到这一点,必须确保URL中的最后一条语句没有返回值。一种方法是用void运算符显式地把返回值指定为underfined,只需要在javascript:URL的结尾使用语句void 0;即可。例如:下面的URL将打开一个新的空浏览器窗口,而不改变当前窗口的内容:
    javascript:window.open("about:blank"); void 0;如果这个URL没有void运算符,window.open()方法的返回值将被转换成字符串并被显示出来,当前窗口将被如下所示的文档覆盖:    [object Window]请问1:window.open()方法只是打开一个新窗口,怎么会有返回值呢?我测试了真的返还值 ,它是怎么来的?
2:javascript: 伪协议它的主要用处在什么地方?
3:vjavascript:window.open("about:blank"); void(0);  中的void(0)能阻止页面调转,是怎么阻止的?

解决方案 »

  1.   

    open Method  Internet Development Index --------------------------------------------------------------------------------Opens a new window and loads the document specified by a given URL.What's New for Microsoft® Internet Explorer 6
    As of Internet Explorer 6, the _media value of the sName parameter specifies that this method loads a URL into the HTML content area of the Media Bar. SyntaxoNewWindow = window.open( [sURL] [, sName] [, sFeatures] [, bReplace])
    open返回你打开窗口的window对象.= =
    js伪协议...某些时候调试什么的用着还是挺欢乐的...还有种需求就是要判断某个子窗口是否已经存在...可以用它
    window.open('javascript:if (document.body) alert("存在")', 子窗口name);void运算符不返回任何东西...
    javascript:伪协议会把你返回的东西write出来.好比
    javascript:window;会显示
    window的toString结果.又
    javascript:a;b;c;d
    只会返回d的结果.
    所以d不返回任何东西.
    它就不会做document.write了JScript   void 运算符
    请参阅
    运算符优先级 | 运算符总结
    要求
    版本 2
    避免表达式返回值。void expression 
    expression 参数是任意有效的 JScript 表达式。说明
    void 运算符对表达式求值,并返回 undefined。在希望求表达式的值,但又不希望脚本的剩余部分看见这个结果时,该运算符最有用。
      

  2.   

    window.open是有返回值的。理论上,var xxx=window.open。调用之后,可以使用xxxx.document.xxxx来访问弹出窗口之内的内容。现在ie提高了安全性之后,必须保证两窗口为同一个域