JavaScript中伪协议

摘要:
javascriptURL还可以含有只执行动作,但不返回值的javascript语句。")装载了这种URL时,浏览器仅执行其中的javascript代码,但由于没有作为新文档来显示的值,因此它并不改变当前显示的文档。一种方法是用void运算符显式地把返回值指定为underfined,只需要在javascript:URL的结尾使用语句void0;即可。

javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行

将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中。这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开。这样的URL如下所示:

1 javascript:var now = new Date(); "<h1>The time is:</h1>" + now;

当浏览器装载了这样的URL时,它将执行这个URL中包含的javascript代码,并把最后一条javascript语句的字符串值作为新文档的内容显示出来。这个字符串值可以含有HTML标记,并被格式化,其显示与其他装载进浏览器的文档完全相同。

javascript URL还可以含有只执行动作,但不返回值的javascript语句。例如:

1 javascript:alert("hello world!")

装载了这种URL时,浏览器仅执行其中的javascript代码,但由于没有作为新文档来显示的值,因此它并不改变当前显示的文档。

通常我们想用javascript:URL执行某些不改变当前显示的文档的javascript代码。要做到这一点,必须确保URL中的最后一条语句没有返回值。一种方法是用void运算符显式地把返回值指定为underfined,只需要在javascript:URL的结尾使用语句void 0;即可。例如:下面的URL将打开一个新的空浏览器窗口,而不改变当前窗口的内容:

1 javascript:window.open("about:blank"); void 0;

如果这个URL没有void运算符,window.open()方法的返回值将被转换成字符串并被显示出来,当前窗口将被如下所示的文档覆盖。

使用:在不引入父级页面js的情况下,调用父级页面的方法

1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
5     <title></title>
6     <style>
7 .test {
8 width:50px;
9 height:50px;
10 background-color:black;
11         }
12     </style>
13     <script>
14         functiontopLink(link) {
15             vartarget =window;
16             if(window.top) {
17 target =window.top;
18 }
19 target.location.href =link;
20 }
21     </script>
22 </head>
23 <body>
24     <div class="test">
25         <a href="javascript:topLink('javascript:testFun()')">返回</a>
26     </div>
27 </body>
View Code

其中testFun()是父级页面的公用方法

参考:http://www.jb51.net/article/52358.htm

免责声明:文章转载自《JavaScript中伪协议》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇三菱5U PLC学习笔记Clipper库中文文档详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux SVN 操作详解(转)

1、将文件checkout到本地目录 svn checkoutpath(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件 svnaddfile例如:svnaddtest.php(添加test.php)svnadd*.php(添加当前目录下所...

在Delphi中高效执行JS代码

因为一些原因,需要进行encodeURIComponent和decodeURIComponent编码,在Delphi中找了一个,首先是发现不能正确编码+号,后面强制处理替换了,勉强可用。 后面发现多次使用后delphi自带的HttpEncode会报Out of Memory. 以上可能是我使用的不好,但没有找到解决办法。 后面想到直接采用运行JavaScr...

前端http请求和常见的几个请求技术做具体的讲解

对于前端来说,请求是前端日常工作必备的,通过请求才能与后端进行数据交互,尤其在现在前后端分离的开发模式下,请求显得就更加重要。因此,对于前端开发者来说,掌握请求就很重要。下面将从http请求和常见的几个请求技术做具体的讲解 一、XMLHttpRequest         XMLHttpRequest一开始只是微软浏览器提供的一个接口,后来各大浏览器纷纷效...

【引用】Qt——web网页和本地对象的交互

有时候可能需要在html网页中调用本地的对象方法。 比如说我点击了一个视频文件的链接,希望调用本地的多媒体模块来播放这个视频文件, 如何实现? 一、html中的JavaScript调用Qt本地对象方法 过程如下: 将本地的QObject对象暴露给webkit和JavaScript 通过JavaScript调用本地QObject的槽 下面对每个步骤进行详...

全面理解js面向对象

前言 当今 JavaScript 大行其道,各种应用对其依赖日深。web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学习和深入理解。所以,经常出现的情况是,很多做了多年 JS 开发的程序员对闭包、函数式编程、原型总是说不清道不明,即使使用了框架,其代码组织也非常糟糕。这都是对...

Resttemplateget带特殊字符调用 异常处理总结

Resttemplateget带特殊字符调用 异常处理总结 Resttemplate设置Accept RestTemplate restTemplate = new RestTemplate(); HttpHeaders httpHeaders = new HttpHeaders(); List<MediaType> acceptableMed...