在浏览器中用模糊搜索 的贴子里 ,我设想了在org-mode中分组和搜索浏览器标签页的办法,如果能解决几个难点应该是可行的, 比如这个问题我问chatGPT给出了: chrome.exe --new-window --new-tab "<URL>"
、firefox.exe -new-tab "<URL>"
我试了一下,没有效果, 不知道是否有办法能做到这点.
当然也不是非要用org-mode, 只要是外部程序与浏览器交互应该都会遇到这个问题
在浏览器中用模糊搜索 的贴子里 ,我设想了在org-mode中分组和搜索浏览器标签页的办法,如果能解决几个难点应该是可行的, 比如这个问题我问chatGPT给出了: chrome.exe --new-window --new-tab "<URL>"
、firefox.exe -new-tab "<URL>"
我试了一下,没有效果, 不知道是否有办法能做到这点.
当然也不是非要用org-mode, 只要是外部程序与浏览器交互应该都会遇到这个问题
chrome的所有命令行可用选项应该都在这里了 List of Chromium Command Line Switches « Peter Beverloo ,1000多个,但可惜的是我却找不到网页 有则跳转、无则打开
的选项。
但我记得chrome以前好像不是这个样子的(或者是某个基于chrome的浏览器),点击地址栏输入网址时,如果输入的网址是已经有标签页打开的,会跳转过去。不知道从什么时候开始就不会跳过去了,只会重复的打开相同的网页,导致标签页越来越多。
macOS 有这样的工具 GitHub - prasmussen/chrome-cli: Control Google Chrome from the command line
Windows 的话你可以写一个 Chrome Extension
@yuandi42 正解,稍微搜了一下,chrome 也有类似的拓展,当然也可以使用 chrome.tabs 的 API 自己写一个,不需要接收从命令行发过来的消息,只用监测新的 tab 的 url 并和现有 tabs 的 urls 做对比进行操作就可以了。
感谢回复,我简单实现了一个。
在浏览器扩展的 background.js
文件中写以下代码, 监听标签页打开事件
chrome.tabs.onCreated.addListener(function(tab) {
if(tab.pendingUrl.substr(7,6)=="tabid="){//如果域名是tabid=开头
let tabid=parseInt( tab.pendingUrl.substr(13) );//取出要跳转的tabid
//console.log(tabid);
chrome.tabs.update(tabid,{ active: true });
chrome.tabs.remove(tab.id);//关闭当前页面
}
});
然后外部程序只要得到标签页对应的tabid (chrome.tabs.query) 就可在生成链接时这样写 chrome.exe tabid=940781025
,只要tabid无误就可以点击链接后在不同的标签页之间切换了,域名不是tabid开头的那就是打开新页面。
感觉离实现在emacs中搜索、分组、切换标签页又前进了一步
我开始传参数时没有写 tabid=
,直接在chrome.exe后面跟 tabid,chrome.exe 940781025
,结果后面的数字自动转换成了 http://56.19.45.225/
,才发现纯数字和ip地址间可以转换
赞,还有把 tabid 当命令行参数进行操作的方法,之前没了解过。
用 tabid 保证不了 tab 是不是重复,而且得先获取 tabid,如果一直不关的话倒没啥问题,否则用 url 的操作性会更简单一些。