JavaScript中伪协议 javascript:使用探讨


Posted in Javascript onJuly 18, 2014

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

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

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

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

javascript:alert("hello world!")

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

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

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

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

Javascript 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
node.js中的fs.fchmod方法使用说明
Dec 16 Javascript
jquery调取json数据实现省市级联的方法
Jan 29 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
简单理解vue中track-by属性
Oct 26 Javascript
Bootstrap和Java分页实例第一篇
Dec 23 Javascript
jQuery快速高效制作网页交互特效
Feb 24 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
JSON 数据格式详解
Sep 13 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
动手写一个angular版本的Message组件的方法
Dec 16 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 #Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 #Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 #Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 #Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 #Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 #Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 #Javascript
You might like
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
php获取linux命令结果的实例
2017/03/13 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python实现简单登录验证
2016/04/13 Python
Python实现的rsa加密算法详解
2018/01/24 Python
用Python shell简化开发
2018/08/08 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
浅析python中while循环和for循环
2019/11/19 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
超市实习总结自我鉴定
2013/09/19 职场文书
办公室助理岗位职责
2013/12/25 职场文书
学校搬迁方案
2014/06/15 职场文书
企业员工集体活动方案
2014/08/17 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android