var app = Application("Safari") function newWorkspaceWindow(){ app.activate() app.Document().make() // delay(1) // return window id return newWindowID() } function newWindowID(){ var windows = getAllWindows() if(index < 0){ index = windows.length + index } return app.windows.byId(windows[index]).id() } /** @returns {Array} List of objects in the form {title: title, url:url} */ function tabsInWindowWithId(id){ var urls = [] if(!sys.windowExistWithId("Safari", id)){ return urls } var win = app.windows.byId(id) for (var i = 0; i < win.tabs.length; i++) { var url = win.tabs.at(i).url() var name = win.tabs.at(i).name() urls.push({name:name, url:url}) } return urls } function getAllWindows(){ var windows = [] for(var i = 0; i < app.windows().length; i++){ windows.push(app.windows.at(i).id()) } return windows // return windows.sort(function(a, b){return a-b}) } function tabsInWindowAtIndex(index) { var win for(var i = 0; i < app.windows().length; i++){ if(i == index){ win = app.windows.at(i) } } var tabs = [] for (var i = 0; i < win.tabs.length; i++) { var url = win.tabs.at(i).url() var title = win.tabs.at(i).name() tabs.push({title: title, url: url}) } return tabs } var tabs = tabsInWindowAtIndex(0) for (var i = 0; i < tabs.length; i++) { console.log(tabs[i].title, tabs[i].url) } // console.log(getAllWindows()) // console.log(newWorkspaceWindow())