
저는 Firefox에서 Python 명령을 사용하여 이 작업을 수행했지만 최근에 변경된 사항이 있어서 더 이상 URL을 얻을 수 없습니다!
Firefox에서 작동했던 것:
#!/bin/bash current_tab_num () { python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])' } current_tab_url () { sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")') } current_tab_url
Firefox 및/또는 Chrome에서 이 작업을 수행하는 방법을 알려줄 수 있는 사람이 있나요?
노트:저는 Python을 모릅니다. 방금 이 명령을 어딘가에서 찾아서 bash에서 사용했습니다!
답변1
저도 같은 문제가 있어서 고치려고 노력하다가 해결해서 여기에 제 해결 방법을 게시하겠습니다(아주 나빴습니다).
나는 이 작업을 수행하기 위해 wmctrl(대신 xprop를 사용할 수 있음)과 xdotool을 사용합니다. 이전에는 제목 표시줄에 URL이 표시되도록 확장 프로그램을 사용했습니다(xprop 또는 wmctrl을 통해 액세스할 수 있음). 실제로 "깨끗한" 것은 아니지만 두 방법 모두 매우 잘 작동합니다.
id=$(wmctrl -l | grep -oP "(?<=)(0x\w+)(?=.*Chromium)") //Put here the regex for the browser you use
xdotool key --window $id "ctrl+l"
xdotool key --window $id "ctrl+c"
이제 클립보드에 URL이 생겼습니다. 그런 다음 xclip을 사용하여 URL을 처리합니다.
누군가가 해결책을 찾으면 실제 해결책을 보고 싶습니다.
답변2
이 스크립트가 작동 중이므로 실행 후 발생하는 오류를 알려주실 수 있나요? 여기에도 같은 질문이 php
있으며 다음을 사용하여 답변했습니다 perl
.
주요 부분은 Python이므로 동일한 작업을 수행하는 순수 Python 스크립트가 있습니다. 시도해 보세요.
#!/usr/bin/python
import json
f = open("recovery.js","r")
jdata = json.loads(f.read())
f.close()
number_of_selected_tab = jdata["windows"][0]["selected"]
tab_number = 1
for win in jdata.get("windows"):
for tab in win.get("tabs"):
if number_of_selected_tab == tab_number :
tab_index = tab.get("index") - 1
print tab.get("entries")[tab_index].get("url")
tab_number = tab_number + 1
내 경우(Mozilla Firefox 44.0, openSUSE 13.1 ) 파일 /home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
은 .recovery.js
~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
Firefox