76 lines
1.6 KiB
JavaScript
76 lines
1.6 KiB
JavaScript
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())
|
|
|