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 相关文章推荐
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
May 25 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
Sep 14 Javascript
js 格式化时间日期函数小结
Mar 20 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
基于jQuery的Tab选项框效果代码(插件)
Mar 01 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
fullCalendar中文API官方文档
Feb 07 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
Jan 27 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 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网上商城购物车设计代码分享
2012/02/15 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
法律专业学生的自我评价
2014/02/07 职场文书
企业内控岗位的职责
2014/02/07 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
企业安全标语
2014/06/07 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
旅游投诉信范文
2015/07/02 职场文书
委托书范本格式
2019/04/18 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android