Javascript 正在尝试构建safari扩展。不工作--

Javascript 正在尝试构建safari扩展。不工作--,javascript,safari,Javascript,Safari,所以我做了一个Safari扩展供我个人使用,但它根本不起作用。 我正试图跳过adf.ly直接进入网站。但它什么也没做。 我尝试过提醒当前URL和假定的新URL,但它们都没有显示 Global.html <!DOCTYPE html> <script type='application/javascript'> // Skip Adf.ly // Made by Austen Patterson // For Safari //(C) Copyright 2013 Aus

所以我做了一个Safari扩展供我个人使用,但它根本不起作用。 我正试图跳过adf.ly直接进入网站。但它什么也没做。 我尝试过提醒当前URL和假定的新URL,但它们都没有显示

Global.html

<!DOCTYPE html>
<script type='application/javascript'>
// Skip Adf.ly 
// Made by Austen Patterson
// For Safari
//(C) Copyright 2013 Austen Patterson.

safari.application.addEventListener("start", performCommand, true);  
safari.application.addEventListener("validate", validateCommand, true);


// Function to perform when event is received  
function performCommand(event) {  
    // Make sure event comes from the button  
    if (event.command == "skip") {  
    var url = this.activeBrowserWindow.activeTab.url;
    var newurl = url.replace(/http:\/\/adf\.ly\/(\d+)\//, '');
    location.href(newurl);
    window.open(newurl,"_self");
    return;

    }  
}  

</script>

//跳过Adf.ly
//奥斯汀·帕特森制作
//狩猎旅行
//(C) 2013年奥斯汀·帕特森版权所有。
safari.application.addEventListener(“开始”,performCommand,true);
safari.application.addEventListener(“验证”,validateCommand,true);
//接收到事件时要执行的函数
函数性能命令(事件){
//确保事件来自按钮
如果(event.command==“skip”){
var url=this.activeBrowserWindow.activeTab.url;
var newurl=url.replace(/http:\/\/adf\.ly\/(\d+)\/,“”);
location.href(newurl);
window.open(newurl,“\u self”);
返回;
}  
}  
这是我的扩展生成器设置。

您不能从全局页面使用
警报。不过,您可以使用console.debug,这样应该会有所帮助

但更大的问题是,您将全局页面视为可以通过
窗口
对象访问您试图修改的页面。这样不行
location.href
不指向任何内容,并且
窗口。从全局范围来看,open
可能不起作用。(这两个都是漏洞百出的global,这是您想要避免的。)我还没有测试过它,但类似的东西应该可以工作:

safari.application.addEventListener("beforeNavigate", function adflyChecker(event) {
    var url = event.url.replace(/http:\/\/adf\.ly\/(\d+)\//, '');
    safari.application.activeBrowserWindow.activeTab.url = url;
}, true);
这样做的好处是可以使用导航,而不需要手动单击按钮。如果将扩展配置为仅应用于
adf.ly
URL,则可以确保代码仅在适当的时候触发

有关Safari扩展架构的更多信息,请参见