我正在尝试填充Safari中的所有文本字段,其中名称以_comment1结尾,并带有从对话框查询中获取的数字。
文本字段的源代码如下所示:
<input type="text" maxlength="6" size="6" name="233941_142117_comment1" value="" onKeyUp="return autoTab (this, 6, event);" onChange="disableButtons();">
虽然它没有填充字段。有什么想法吗?
我的苹果是:
set query to text returned of (display dialog "Enter Query" default answer "" buttons {"Input", "Cancel"} default button 1)
log "2"
activate application "Safari"
log "3"
tell application "Safari"
log "4"
do JavaScript "
let x = document.querySelectorAll('input[name$=_comment1]');
var i;
for (i = 0; i < x.length; i++) {
x[i].value = query;
}
"
告诉
答案 0 :(得分:0)
我在问题下面留下的评论中概述了您的脚本问题。总结一下:
①您的query
变量被定义为AppleScript变量,但未使用。然后,您在JavaScript中引用一个名为query
的变量,该变量未定义且没有值。
②您的do JavaScript
命令在 Safari 中没有目标,需要对特定标签或文档执行操作。
如果没有看到您正在使用的特定网站,我无法测试我的解决方案,但我非常有信心它应该纠正这两个显然会阻止您的脚本工作的显式错误。是否出现任何其他不相关的问题取决于网站的具体情况。
所以你已经定义了你的AppleScript变量query
,我在这里懒得做:
set query to "blah blah blah"
需要修改的脚本的核心位在:
tell application "Safari" to tell ¬
the front document to do JavaScript ¬
"x=document.querySelectorAll(\"input[name$='_comment1']\"); " & ¬
"for(let i of x){ i.value=" & quoted form of query & "; }"
你的JavaScript本身完全没问题(虽然我根据自己的喜好略微修改了它,我也许不应该这样做)。这里的要点是我告诉 Safari 它将在front document
中执行JavaScript;并且JavaScript现在使用AppleScript query
变量来使用它来设置<input>
字段的值。
在我找到的某个任意网站上测试了这个变种后,它看起来很成功。
让我知道结果如何。