【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()方法的返回值将被转化为字符串并显示出来,当前窗口将被如下的文档覆盖。

点我查看原文

时间: 2025-01-11 04:33:54

【JavaScript】javascript中伪协议(javascript:)使用探讨的相关文章

JavaScript中伪协议 javascript:研究

将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中.这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行.如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开.这样的URL如下所示: javascript:var now = new Date(); "<h1>The time is:</h1>" + now;

&lt;a&gt;标签中的href=&quot;javascript:;&quot;

例子:<a href="javascript:;">我的页面</a> javascript: 是一个伪协议 javascript:是表示在触发<a>默认动作时,执行一段JavaScript代码,而 javascript:; 表示什么都不执行,这样点击<a>时就没有任何反应. href="javascript:;"就是去掉a标签的默认行为,跟href="javascript:void(0)"是一样的?

JavaScript伪协议

[javascript 伪协议] 将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中.这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行.如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开.这样的URL如下所示: 1 javascript:var now = new Date(); "<h1>The time is:</

&quot;javascript:&quot; 伪协议与平稳退化

"javascript:"伪协议是一种非标准化协议,其可以让我们通过一个链接调用javascript 函数.例如:<a href="javascript:pop('http://www.xxx');">Example</a> 但是这样也有一些问题,那就是这种形式在支持伪协议的浏览器中可以使用,但是老旧的浏览器则会尝试打开这个链接并且报错. 同时随着一些用户操作'禁用javascript'(不得不说,部分用户会禁用js以阻止一些网页弹窗,而一些

filter_var 函数()使用javascript伪协议绕过执行xss

escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下: htmlspecialchars:(PHP 4, PHP 5, PHP 7) 功能 :将特殊字符转换为 HTML 实体 定义 :string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string$

javascript语言中的毒瘤(下)

javascript语言中的毒瘤(下) 伪数组 Js中没有正真意义上的数组:这使得数组的使用非常容易,你不必给他们设置维度:而且永远不会产生越界错误:但它的性能相比正真的数组就糟糕了: Typeof 运算符不能辨别数组和对象,要判断一个值是否为数组,你还需要检查它的construtor属性:(也可以使用instanceof) function isArr(my_value) { if(my_value&& typeof my_value === 'object' && my

IOS中UIWebView和JavaScript交互(转自http://blog.2jun.net/2012/11/02/webviewandjs/)

IOS中UIWebView和JavaScript交互 当程序中使用到UIWebView控件的时候,难免会遇到需要与页面进行交互的情况.这种情况在android平台下比较容易处理,android平台下WebView控件的addJavascriptInterface()方法可以很轻松的完成交互,而IOS上就稍复杂一些. 页面与客户端的交互是通过JS来完成的,通常情况下与JS的交互可以分为两种:客户端传递给JS一些数据和JS向客户端请求一些本地操作.下面分别对这两种情况进行处理. JS向客户端请求本地

轻松学习JavaScript二十九:JavaScript中的this详解

这几天在看很多的JS的代码,多次出现this关键字,有时候表示不理解,就仔细看了这一方面的知识. 在JavaScript语言中,this的定义是:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬 嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它:1包含它的函数.2作为方法被调用时.3所 属的对象.随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那 个对象. this是Javascript语言的一个关键字,它代

实用篇:说说我在JavaScript项目中使用的工具类

在JavaScript的开发中,我们都会写一些工具类来帮我们简化一些业务操作的逻辑,一下就貼几个我在项目开发过程中常用的工具类.表达能力有限,各位看官还是看源码吧. 一.日期处理工具类. /** * 日期处理工具类 * @Authors: jackyWHJ * @date 2013-10-18 * */ var DateUtils = { /** * 得到日期在一年当中的周数 */ getISOYearWeek: function(date) { var commericalyear = thi