2016-08-01 58 views
1

我想用JavaScript代替AppleScript编写我的第一个OS X脚本,并且遇到了一些问题。第一部分是从Chrome中的一个标签获取URL,以便我可以做更多的工作(例如,在Safari中创建一个新的阅读列表项)。我试过下面的代码:如何使用脚本编辑器和JavaScript访问Chrome活动标签URL

var safari = Application('Safari'); 
var chrome = Application('Google Chrome'); 
chrome.activate(); 
var url = chrome.windows[0].tabs[0].get('url'); // This returns an ObjectSpecifier 
safari.addReadingListItem(url, {andPreviewText: 'Added from Chrome'}); 

此操作失败,出现错误:“错误-1700:无法转换的类型。”我需要一个字符串,但这仍然是一个对象说明符。所以我想我不会从.get('url')

得到一个字符串回来,我还没有得到任何运气找到拉动值从脚本环境的例子,但我已经看到了一些关于把新的标签到浏览器中。任何帮助,这是赞赏!

回答

-1

经过更多的挖掘,我追踪了你应该做的事情。这里记载:Apple Documentation

属性返回为对象说明符,要得到一个对象说明符的值,你怎么称呼它像一个功能:

chrome.windows[0].tabs[0].url(); // the string value of the URL 

可设置的属性可以用=进行设置。这并不适用于只读值(在脚本编辑器标注,库面板中:

chrome.windows[0].tabs[0].url = "http://example.com"; 
+0

这并没有回答你自己的问题,它得到了第一个标签的URL,而不是活动标签的URL – user137369

+0

考虑到我问了这个问题,现在它适用于我,我想我会是正确的判断吗?下次,要求澄清...我真的意味着任何选项卡,但提到'主动'作为一个例子。如果你仔细阅读,实际的问题是处理'url ',而不是哪个标签。 – drewpotential

1

要获得活跃标签的URL,这样做:

Application('Chrome').windows[0].activeTab.url()