zoukankan      html  css  js  c++  java
  • 【JavaScript】javascript中伪协议(javascript:)使用探讨

    javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。

    比如下面这个死链接:

    <a href="javascript:void(0)">No response link</a>

    将javascript代码添加到客户端的方法是把它放置在伪协议说明符号 javascript:后的URL中。这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开。这样的URL如下所示:

    javascript:var now =new Date();"<h1>This time:</h1>"+now;

    当浏览器装载这样的URL时,它将执行这个URL中包含的Javascript代码,并把最后一条javascript语句的字符串值作为新文档的内容显示出来。这个字符串可以含有HTML标记,并被格式化,其显示与其他装载进浏览器的文档类型完全相同

    效果图:

    javascript URL还可以只执行动作,但不返回的javascript语句。例如:

    javascript:alert("Hello world")

    装载了这种URL时,浏览器仅执行其中的javascript代码,但由于没有作为新文档来显示的值,因此它并不改变当前显示的文档。

    通常我们想用javascript:URL执行某些不改变当前显示的文档的javascript代码。要做到这一点,必须确保URL中的最后一条语句没有返回值。一种方法是用void运算符显示地把返回值指定为undefined,只需要在javascript:URL的结尾使用语句void 0;即可。例如:下面的URL将打开一个新的空浏览器窗口,而不改变当前窗口的类容:

    javascript:window.open("about:blank");void 0;

    如果这个URL没有URL运行符,window.open()方法的返回值将被转化为字符串并显示出来,当前窗口将被如下的文档覆盖。

    点我查看原文

  • 相关阅读:
    沃尔玛的问题
    为什么没有“128位”的通用处理器
    用户模式驱动模型(UMDF)简介
    Live Space的谢幕
    Cheap HDD bracket
    让 UV4 支持STC 单片机
    SQLServer 分组查询相邻两条记录的时间差
    ERP采购系统流程
    C++运算符的优先级和结合性
    Entity Framework 4.1延时加载与贪婪加载之我的理解和数据库中如何存入图片
  • 原文地址:https://www.cnblogs.com/HDK2016/p/6245710.html
Copyright © 2011-2022 走看看