zoukankan      html  css  js  c++  java
  • javascript 通信协议

    简介

    javascript 通信协议是一个伪协议[1], 用于指定 URL 为 JavaScript 代码

    • 语法:

      javascript:someScript;
      
      • someScript 是一个或多个使用 ; 分隔的 JavaScript 语句.
    • 示例

      <a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>
      

    特点

    • 返回值会替换当前文档

      • 对于 Chrome 浏览器来说, 如果最后一条 JavaScript 语句的值为字符串 (使用'', ""` 括起来的值), 那么该字符串会替换当前文档的内容, 作为新文档显示出来

      • 对于 Firefox 浏览器来说, 如果最后一条浏览器的返回值不为 undefined, 那么就调用该返回值的 toString() 方法 (如果 toString() 方法不存在就调用 valueOf() 方法), 得到的结果作为新文档显示出来

      • 返回值为 undefined 的几种常见写法

        javascript:;
        
        javascript:undefined;  // 全局变量 undefined 的值可能被更改
        
        // void 将之后的内容当作表达式, 然后对该表达是求值, 并始终返回 undefined, 而不管全局变量 undefined 的值是否被改变
        // 以下写法等价
        javascript:void(0);
        javascript:void 0;
        

    用途

    • 任何使用 URL 的地方都可以使用该通信协议
      • 在保留锚元素 href 属性的同时防止点击锚元素页内/外跳转

        javascript:;
        javascript:undefined;
        javascript:void(0);
        
      • 当作 bookmarklet 这里写了个小 Demo

        // 修改书签的 URL 为以下代码, 就可实现分屏功能
        javascript:'<html><head><title>'+document.title+'</title></head><body style="margin:0;"><iframe style="border:none;" width="50%" height="100%" src='+location.href+'></iframe><iframe style="border:none;" width="50%" height="100%" src='+location.href+'></iframe></body></html>';
        
      • 执行 JavaScript 代码 (不推荐)

        // 更改页面背景为绿色 (推荐为锚元素绑定事件来更改页面背景)
        <a href="javascript:void(document.body.style.backgroundColor='green');">
        
        // 打开新页面 (注意需返回 undefined, 否则在火狐浏览器会替换文档)
        <a href="javascript:window.open('about:blank'); void(0);">
        

    1. 网络通信协议 ↩︎

  • 相关阅读:
    移动端页面默认样式重置
    与后台交互常见问题
    各种各样的hack。
    sasscore学习之_mixin.scss
    百度云服务器配置。
    FastDFS搭建文件管理系统
    Ubuntu安装mysql
    微信公众号开发(三)自定义菜单。
    微信公众号开发(二)获取access_token
    查看数据库的编码格式
  • 原文地址:https://www.cnblogs.com/ayuuuuuu/p/13362571.html
Copyright © 2011-2022 走看看