我试图自动解析网站(安全)并使用预先填充的信息设置我的Word文档。我认为3个步骤:第2部分:将变量从javascript传递到applescript
- 从页面中提取信息(我不控制它和它的动态生成的)
- 从Safari浏览器传递这一信息向AppleScript的
- 使用搜索和我的模板 更换
我得到了第一个工作和提取脚本的作品。我需要附加jQuery(网站不使用它),我知道我打电话并附加两次,但我不知道如何通过一个参数从JavaScript到applescript,更不用说了。问题是我在applescript中获得了空变量,但是javascript部分工作得很好(我测试了它并获得了正确的值)。
感谢您提供关于如何获得findMe返回到applescript变量的javascript值的提示,以及如果您可以让我也知道如何将脚本简化为带有2个参数的调用,这些参数也非常棒。
to getClaimFile(needle)
tell application "Safari"
set input to do JavaScript "
(function() {
function loadScript(url, callback) {
var script = document.createElement('script')
script.type = 'text/javascript';
if (script.readyState) { //IE
script.onreadystatechange = function() {
if (script.readyState == 'loaded' || script.readyState == 'complete') {
script.onreadystatechange = null;
findMe('" & needle & "')
}
};
} else { //Others
script.onload = function() {
findMe('" & needle & "')
};
}
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
loadScript('https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js', function() {
//jQuery loaded
console.log('jquery loaded');
});
})();
function findMe(squery) {
return $('iframe#app_win').contents().find('iframe#app_subwin').contents().find('label:contains('+squery+')').parent().next('td').text()
}
" in current tab of window 1
end tell
return input
end getClaimFile
set claimNum to getClaimFile("Claim #:")
set fileNum to getClaimFile("File Number:")
log claimNum
log fileNum