我正在编写一个Firefox附加组件并试图获取当前输入到地址栏中的内容,但每次尝试时都会出现空错误。我正在使用的代码是
var url = document.getElementById("urlbar").value;
然而,当我这样做时,我得到的错误是
第1行出错:document.getElementById(“urlbar”)为null。
我打开一个空白标签,文字写入地址栏。这是在Firefox 3.6.9。
任何帮助将不胜感激。谢谢!
编辑:如果在用户按Enter键之前无法获取网址栏的内容,是否可以“拦截”他们按Enter键后输入的内容?
答案 0 :(得分:2)
在用户提交之前,您无法挂钩到地址栏中键入的内容。用户提交文本后,您有两个选择:
答案 1 :(得分:1)
var url = document.getElementById(“urlbar”)。value;
这就像gURLBar.value
一样有用。
问题是您运行该代码的上下文。您应该在a browser.xul overlay和after the browser DOM is loaded中运行该代码。
此外,是的,它可以截取用户输入后输入的内容,但是没有公开的API,所以你必须弄清楚Firefox中的相关代码如何工作并替换负责的部分。处理在位置栏中输入。 [edit]请参阅Firefox addon to do something everytime a user hits Enter in the address bar
答案 2 :(得分:0)
getElementById
获取具有指定ID的DOM元素。地址栏不是DOM元素。
你想:
var url = window.location;
答案 3 :(得分:0)
最接近你想要的是window.location.href
。但是,它不是URL文本框中的完美访问者,因为您会发现在URL框中键入但不按“enter”不会修改window.location.href
。据我所知,没有办法直接访问文本值。