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 相关文章推荐
去除链接虚线全面分析总结
Aug 15 Javascript
javascript 面向对象编程基础:继承
Aug 21 Javascript
如何在指定的地方插入html内容和文本内容
Dec 23 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
Nov 15 Javascript
微信公众号 客服接口的开发实例详解
Sep 28 Javascript
javascript基础知识讲解
Jan 11 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
extract-text-webpack-plugin用法详解
Feb 14 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 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的memcached客户端memcached
2011/06/14 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python并发和异步编程实例
2018/11/15 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
哪些情况下不应该使用索引
2015/07/20 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
超市营业员求职简历的自我评价
2013/10/17 职场文书
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
高一地理教学反思
2014/01/18 职场文书
电子工程求职信
2014/07/17 职场文书
华清池导游词
2015/02/02 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
新闻稿格式范文
2015/07/18 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
virtualenv隔离Python环境的问题解析
2022/06/21 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android