为什么使用文档时页面会重新加载.位置在内容脚本的chrome扩展
Why does the page reload when using document.location in content script of a chrome extension?
var location = document.location;
这是我的chrome扩展导致的内容脚本的第一行重新加载页面。这是预期行为吗?
如果你在全局范围内(我有一种预感),那么就没有局部变量,var
什么也不做。因此,location
= this.location
, this == window
=…你可以看到这是怎么回事。在您的控制台中试试:var location = "http://example.com"
;或者,对于一个不那么图形化的例子,var foo = 17; console.log(window.foo);
(注:我不是100%肯定,因为它已经有一段时间我写了一个Chrome扩展,不知道一个事实,你是在一个全局上下文中;但这是我能想到的唯一符合事实的解释。
要解决这个问题,要么更改变量的名称,或者更好的是,引入一个非全局上下文;例如:
(function() {
var location = window.location; // does not blow up
})();
或者
function pleaseDontBlowUp() {
var location = window.location; // does not blow up
}
pleaseDontBlowUp();
相关文章:
- 加载页面时更改html页面的位置
- 点击href在谷歌地图中加载位置
- 如何在浏览器重新加载时保存位置哈希状态
- 防止用户在jQuery Mobile中ajax加载页面时单击其他位置
- 事件在加载之前时的未定义位置
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 在存储位置加载页面
- 试图从错误位置加载资源的Rails
- Rails:Jquery/Javascript无法从正确的资产位置加载
- 链接到页面上的位置 - 加载缓慢会影响位置
- 在多个位置加载相同的 javascript 文件
- 谷歌地图API 3从MySQL从当前位置加载标记
- 如何在同一位置加载多个图像
- 使用PHP将当前地理位置加载到数据库中
- 根据滚动位置加载表中的内容
- 根据用户位置加载不同的JS
- JS位置加载后的功能-添加延迟时间
- 谷歌地图API找到我的位置加载Javascript
- 为什么不开窗户?位置加载一个新页面
- Nginx为多个位置加载静态文件