javascript - iife 与 document.title 的简单语句行为
问题描述
我正在寻找一种使用 javascript 小书签更改当前页面选项卡标题的方法。
我最初尝试了一个简单的语句,但它实际上将我导航到一个只包含标题的新页面。然后我找到了相同的代码,但作为一个 iife 包裹起来。
基本上我想了解这之间的区别:
javascript: document.title="title";
和这个:
javascript: (function(){document.title="title";})();
有人能解释一下为什么第一个语句从页面导航而第二个 iife 语句实际上改变了标题吗?
解决方案
这基本上就是小书签所做的 - 如果后面的表达式javascript:
解析为undefined
(例如字符串)以外的其他内容,则当前页面将被替换。因此,运行任意 Javascript 的一种选择是运行不返回任何内容的 IIFE。更多解释在这里。
该行为可能因浏览器而异。
另一种选择是使用逗号运算符:
javascript: (document.title = 'www.google.com', undefined)
对于任何不是非常琐碎的代码,您可能会考虑使用用户脚本(如Tampermonkey)而不是书签,它可能更易于管理。
推荐阅读
- qt - 什么是“无法提取 mkspecs 目录”。运行 `qbs setup-qt /usr/bin/qmake qt` 时是什么意思?
- icons - Sublime Text 3 侧边栏图标
- javascript - Texboxes 空警报按钮
- latex - LaTeX 的抓地力?
- python - 使用 Python + lxml (xpath) 从网站抓取/提取文本并打印
- c# - 如何将两个列表相互组合?
- python - python循环遍历图像列表并将它们分组合并
- sql - 如何在熊猫的postgresql中对多个表进行聚合和分组
- typescript - Typescript 中的复杂类型
- javascript - javascript else 语句仅在正确填写所有内容时才返回 true