JavaScript警报在Firefox 6中不起作用

JavaScript警报在Firefox 6中不起作用,javascript,browser,alert,firefox6,Javascript,Browser,Alert,Firefox6,我尝试在Firefox 6的地址栏中运行此JavaScript代码: javascript:alert("Hello") 我得到一份工作 ReferenceError:未定义警报 不过,它在Firefox5中运行良好,在Opera、Safari和Chrome上仍能正常工作。我该如何解决这个问题 目前不允许使用javascript:和数据:URL(直接在地址栏中): 仅供参考,我可能会将此错误分为多个短期和长期修复 短期:不允许将javascript:URL粘贴到URL栏中 长期:另外要求boo

我尝试在Firefox 6的地址栏中运行此JavaScript代码:

javascript:alert("Hello")
我得到一份工作

ReferenceError:未定义警报


不过,它在Firefox5中运行良好,在Opera、Safari和Chrome上仍能正常工作。我该如何解决这个问题

目前不允许使用
javascript:
数据:
URL(直接在地址栏中):

仅供参考,我可能会将此错误分为多个短期和长期修复

短期:不允许将javascript:URL粘贴到URL栏中
长期:另外要求bookmarklet在 书签管理器才能运行JavaScript

这一点在会议上得到了解决。委员会还指出:

javascript:实际上并没有被忽略-它们是在一个“空”上下文中运行的,而这个上下文中没有您所期望的任何常见DOM方法,因此大多数常见用法(例如javascript:alert(1))只是抛出(因此实际上被忽略)。javascript:1+1可以很好地工作

现在:

我该如何解决这个问题


你不能,你必须等到他们决定一个合适的解决方案。正如评论所说,bookmarklet可以工作,但必须被明确允许。如果您只是想测试代码,请使用或使用新功能。

Felix的回答正确地说明了URL栏中的
javascript:
不再起作用的原因


如果您试图调试您的网页,那么替换它的是web控制台(不要与错误控制台混淆)。在compact菜单中,它位于WebDeveloper下;在完整菜单栏中,它位于“工具”下。也可以按ctrl-shift-K(Mac电脑上的cmd-shift-K)。带有大于号的条是JavaScript提示符;在此处输入的代码将在当前页面的上下文中进行计算。可以单击该条上方带下划线的区域中的任何内容,以打开一个检查器窗口。

如果您的可单击书签被破坏,并且您希望它恢复,您可以使用Firefox扩展创建一个可单击按钮

与从Scratchpad运行相比,按钮的优点是:

  • 实际上,您可以保存bookmarklet(按钮)
  • 您可以拥有一个自己的图标(创建一些图像,例如PNG文件,导入它并在“新建按钮”对话框中对其进行base64_编码)
扩展有点特殊,因为按钮运行在Firefox chrome级别,所以它们有点特权(你可以与浏览器的API交互),并且普通的JS和按钮代码之间没有1对1的对应关系(需要一些调整)。更准确地说,从按钮中看到的
文档
窗口
并不是您所期望的

但是,您可以将“good”
窗口
文档
分配给变量,然后处理这些变量(最好不要重新定义窗口;)

下面是我编写的示例代码,它在Fx10中运行良好:

//将适当的“窗口”和“文档”放入我们的私有变量中
var theWindow=window.top.getBrowser()。选择了Browser.contentWindow;
var theDocument=theWindow.document;
//我们开始
var输入=document.getElementById(“foo”);
input.focus();//只是想让你知道它是有效的,事实上没有必要
//模拟键盘事件
var evt=document.createEvent(“KeyboardEvent”);
evt.initKeyEvent(“按键”,真,真,窗口,
0, 0, 0, 0, 0, 65); // 65==“A”
输入、调度事件(evt);
//2秒后显示警报
setTimeout(函数(){
输入值+=“B”;
theWindow.alert(input.value);//警报“AB”
},2000);
与直接使用全局函数(如
setTimeout
,或
alert
)不同,您必须将
窗口
放在它们前面,并将
文档
/
窗口
替换为本地
文档
/
窗口
,它似乎正在工作。然而,我还没有用非常复杂的案例对它进行彻底的测试


要添加按钮,右键单击您已有的任何按钮并选择“添加新按钮…”。

两人在25秒内相互引用同一错误报告:D我已经删除了我的答案,因为这更详细。这个“错误修复”刚刚毁掉了我正在进行的一个2个月的项目:(我必须同意80%的人对这个错误的评论。这是解决这个问题的最愚蠢的解决方案。让我们也在浏览器上禁用javascript。这将使世界更加安全。更好的是,让我们禁止用户访问页面。这应该解决互联网上所有的仇恨言论!@Ryan:完全按照你对我的答案所做的:接受e答案对你帮助最大。你应该回到你以前的问题上,这样做。**Mac上的command+alt+K。悲哀的一天,我会错过在地址栏中键入javascript。。。