为什么';t';执行javascript';在浏览器中键入的相同代码执行时调用Applescript?

为什么';t';执行javascript';在浏览器中键入的相同代码执行时调用Applescript?,javascript,macos,dom,applescript,Javascript,Macos,Dom,Applescript,我试图弄明白,当输入Safari位置栏的相同javascript代码起作用时,为什么我的Applescript什么都不做 转到搜索结果页,例如:。要获得正确的行为,请在位置栏中键入,然后按enter键: javascript: document.getElementsByClassName('vspib')[0].click(); 您将看到,它为第一个搜索结果选择了放大镜 这就是我想通过javascript实现的。因此,我输入了以下内容: tell application "Safari"

我试图弄明白,当输入Safari位置栏的相同javascript代码起作用时,为什么我的Applescript什么都不做

转到搜索结果页,例如:。要获得正确的行为,请在位置栏中键入,然后按enter键:

javascript: document.getElementsByClassName('vspib')[0].click();
您将看到,它为第一个搜索结果选择了放大镜

这就是我想通过javascript实现的。因此,我输入了以下内容:

tell application "Safari"
    activate
    do JavaScript "document.getElementsByClassName('vspib')[0].click();" in document 1
end tell

然而,它什么也不做。有什么想法吗?

问题是
dojavascript
必须正确处理Safari窗口中的选项卡

如果搜索结果页面是最前面的Safari窗口中的当前选项卡,则以下脚本适用于我:

tell application "Safari"
    activate
    set theScript to "document.getElementsByClassName('vspib')[0].click();"
    do JavaScript theScript in current tab of first window
end tell

非常感谢。由于某些原因,您的代码不是每次都能为我工作,但这次修改最终起到了作用:执行前窗口的活动选项卡javascript“document.getElementsByClassName('vspib')[0]。单击()