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 相关文章推荐
js 判断 enter 事件
Feb 12 Javascript
如何学习Javascript入门指导
Nov 01 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 Javascript
Javascript中各种trim的实现详细解析
Dec 10 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
浅谈js构造函数的方法与原型prototype
Jul 04 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
@ResponseBody 和 @RequestBody 注解的区别
Mar 08 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
Jul 10 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
JavaScript中的各种宽高属性的实现
May 08 Javascript
vue实现移动端返回顶部
Oct 12 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设计模式 Composite (组合模式)
2011/06/26 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
phpinfo的知识点总结
2019/10/10 PHP
菜鸟javascript基础资料整理2
2010/12/06 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
美国渔具店:FishUSA
2019/08/07 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
党组织公开承诺书
2014/03/29 职场文书
文明班级申报材料
2014/12/24 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
Python3的进程和线程你了解吗
2022/03/16 Python
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers