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 相关文章推荐
javascript 新浪背投广告实现代码
Jul 07 Javascript
读jQuery之十四 (触发事件核心方法)
Aug 23 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
May 04 Javascript
javascript分页代码(当前页码居中)
Sep 20 Javascript
详解JavaScript跨域总结与解决办法
Oct 31 Javascript
jQuery实现简易的输入框字数计数功能示例
Jan 16 Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 Javascript
原生js实现分页效果
Sep 23 Javascript
基于javascript原生判断DOM是否加载完毕
Oct 14 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Python 在函数上添加包装器
2020/07/28 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
C#基础面试题
2016/10/17 面试题
nohup的用法
2014/08/10 面试题
软件测试题目
2013/02/27 面试题
上班迟到检讨书
2014/01/10 职场文书
医学生自我评价
2014/01/27 职场文书
五年级音乐教学反思
2014/02/06 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
优质护理心得体会
2016/01/22 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL