JavaScript 和浏览器

Posted risejl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 和浏览器相关的知识,希望对你有一定的参考价值。

模块

参见 ES6 部分

DOM

参见 Web 相关部分

选择器

  • document.querySelector() 来获取网页的对应 HTML 元素
  • document.querySelectorAll() 来获取网页的所有对应 HTML 元素
  • document.getElementById() 根据 ID 获取元素
  • document.getElementsByClassName() 根据类名获取元素
  • document.getElementsByTagName() 根据 HTML 元素名获取元素
document.querySelector(\'p\');

事件处理

监听事件的函数叫“事件监听器(event listener)”;处理事件的函数叫“事件处理器(event handler)”。

常用的监听器:addEventListener(),第一个参数是事件的类型,第二个参数是事件处理器。

const target = document.querySelector(\'body\');
function handleClick() 
  console.log(\'clicked the body\');

target.addEventListener(\'click\', handleClick);

也可以给 HTML 元素添加点击属性:

<h1 onClick=\'handleClick2()\'></h1>
function handleClick2() 
  console.log(\'clicked the heading\');

内容更新

可以使用 prompt() 内置方法获取用户输入。注:这不是最佳实践,应该使用表单。

let answer = prompt(\'What is your name?\');
if (typeof(answer) === \'string\') 
    var h1 = document.createElement(\'h1\')
    h1.innerText = answer;
    document.body.innerText = \'\';
    document.body.appendChild(h1);

var h1 = document.createElement(\'h1\')
h1.innerText = "Type into the input to make this text change"

var input = document.createElement(\'input\')
input.setAttribute(\'type\', \'text\')

document.body.innerText = \'\';
document.body.appendChild(h1);
document.body.appendChild(input);

input.addEventListener(\'change\', function() 
    h1.innerText = input.value
)

数据格式

XML

XML(Extensive Markup Language)扩展标记语言是早期常用的数据传输文件格式。

XML 需要很多字符来描述传输的数据,并且是一门独立语言,不容易和 JS 互操作。

JSON

2001 年,Douglas Crockford 发明了 JavaScript Object Notation / JSON。

JSON 的优势:

  1. 轻量级,语法类似 JS 的对象
  2. 容易用 JS 操作

除了作为数据传输格式外,JSON 还是一种文件格式,通常从第三方网站的 json 文件获取第三方数据。

规则

JSON 是一种格式化的字符串,以下规则是 JSON 数据或者从 JSON 中提取至 JS 对象中要遵守的:

  • 基本类型:字符串,数组,布尔,null
    • 字符串必须用双引号:"fruits"
    • 数字用常规 JS 语法表示:5,10,1.2
    • 布尔值用常规 JS 语法表示:true, false
    • null 必须是 null
  • 复杂类型:对象,数组(没有函数!)
  • 对象中所有键包含双引号
  • 在 JSON 对象中和 JSON 数组中,值是逗号分割的
  • 不能使用 JS 注释

如果尝试字符串化不受 JSON 支持的数据,例如函数,操作会“无声地”失败。

如果尝试字符串化其他数据类型,例如 BigInt:123n,会得到如下错误:Uncaught TypeError: Do not know how to serialize a BigInt.

一些合法的 JSON 实例:

\'  "color":"red", 	"nestedObject":  "color": "blue"  \' 

\'["one", "two", "three"]\'

\'[ "color": "blue" , "color: "red"]\'

JSON -> Object

使用 parse() 从 JSON 提取至 JS 对象:

const jsonStr = \'"greeting": "hello"\'
JSON.parse(jsonStr); // greeting: "hello"

使用 JSON.stringify() 把对象转化为 JSON:

const data = 
  firstName: "John",
  lastName: "Doe",
  greeting: "Hello"


JSON.stringify(data) // \'"firstName": "John", "lastName": "Doe", "greeting": "Hello"\'

如何关闭浏览器javascript脚本和广告拦截

首先,每个浏览器的设置的地方都可能不一样,下面以IE、360、谷歌、火狐几个比较常用的浏览器举例说明:
一、IE浏览器
1、依次选择:工具——Internet选项,如图

2、在弹出的窗口中选择“安全”选项卡,再点击“自定义级别按钮”,如图

3、然后在弹出的窗口中,拖动滚动条到脚本项,其中有Java小程序脚本和活动脚本,勾选启用或禁用后,依次点击确认重启电脑即可。

二、360浏览器
1、选择“工具”,然后选择里面的“选项”(注意:不是Internet选项),如下图

2、选择“高级设置”——“网页内容高级设置”

3、在弹出面板中,Javascript项即可选择允许或不允许运行Javascript,选择完成后点击右侧关闭按钮,退出自动保存选择,选择如图

三、谷歌浏览器
1、在地址栏输入 chrome://settings ,如下图

2、点击最下方的“显示高级设置”

3、点击隐私设置中的“内容设置”

4、再弹出的面板中选择允许或者不允许Javascript

选择好后点击完成即可

四、火狐浏览器
1、打开浏览器在地址栏输入 about:config ,然后点击“我了解此风险”

2、在搜索栏输入 然后第一样默认是true(允许),右键选择“切换”则变成false(不允许)
参考技术A 工具选项进行设置

以上是关于JavaScript 和浏览器的主要内容,如果未能解决你的问题,请参考以下文章

如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]

IE和其他浏览器中,JavaScript停止冒泡和阻止浏览器默认行为

JavaScript:操作 BOM 和 DOM

javascript书签复制网页标题和链接

高性能JavaScript之加载和运行

高性能JavaScript之加载和运行