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代码
Nov 23 Javascript
jQuery 源码分析笔记(2) 变量列表
May 28 Javascript
原生js实现下拉框功能(支持键盘事件)
Jan 13 Javascript
JS实现前端缓存的方法
Sep 21 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
vue源码学习之Object.defineProperty对象属性监听
May 30 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
vue+element导航栏高亮显示的解决方式
Nov 12 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php获取淘宝分类id示例
2014/01/16 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
python网络编程学习笔记(一)
2014/06/09 Python
使用python开发vim插件及心得分享
2014/11/04 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
django-allauth入门学习和使用详解
2019/07/03 Python
在django view中给form传入参数的例子
2019/07/19 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Python实现石头剪刀布游戏
2021/01/20 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
结婚典礼证婚词
2014/01/11 职场文书
大学毕业寄语大全
2014/04/10 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
治庸问责心得体会
2014/09/12 职场文书
2014年少先队工作总结
2014/12/03 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
歌舞青春观后感
2015/06/10 职场文书
爱护环境建议书
2015/09/14 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技