|
Помощь новичку с простеньким greasemonkey скриптом
Привет всем! требуется из исходника страницы узнать значения переменных 'id', 'Name', 'ds' (в моем примере - "aaa", "bbb", "ccc"):
<script type="text/javascript"> var chatData__ = {id:'aaa',Name:'bbb',ds:'ccc'}; Затем извлеченные значения переменных суём в URL и открываем получившийся адрес в новой вкладке. "www.mysite.com/script.php?id=aaa&name=bbb&ds=ccc" Пробовал использовать команды getElementById() getElementsByName() getElementsByTagName() но ничего не получилось. Спасибо |
// ==UserScript== // @name chatData__ // @namespace w*!**/!*ww.mysite.com // @include ht*!**/!*tp://ww*!**/!*w.mysite.com/* // @version 1 // @grant GM_openInTab // @grant unsafeWindow // @run-at document-start // ==/UserScript== var interval = setInterval( function(){ if('chatData__' in unsafeWindow){ clearInterval(interval); let {id,Name,ds} = unsafeWindow.chatData__; GM_openInTab(`http://www.mysite.com/script.php?id=${id}&name=${Name}&ds=${ds}`) } }, 10);Примерно так. |
спасибо за помощь и время!
не удалось почему-то заставить работать. Попробуйте, может проблема на моей стороне. Скрипт чутка переделал по части имен переменных и URL-a http://pastebin.com/####### html source: https://www.dropbox.com/s/cx4csksn33...reeam.zip?dl=0 А что делает интервал в 10 миллисекунд и зачем clearinterval, интересно |
ой, Друже, все работает!
// @grant GM_openInTab // @grant unsafeWindow // @run-at document-start эти строки забыл добавить в префикс. Спасибоооо |
С интервалом в 10 мс скрипт проверяет наличие переменной(потому что она появляется не сразу, а как подгрузятся нужный скрипт), и как только оная найдена - останавливает проверку(clearinterval) и открывает страничку.
|
Aetae: привет снова! Не проверите ли мой новый скрипт на ошибки, что-то не работает.
Задача поменять все ссылки где есть waitingroom, на мои: <div class="HLImageContainer" data-url="/waitingroom/Vasya"> поменять на <div class="HLImageContainer" data-url="/videochat/Vasya?from=wr"> я написал подобный greasemonkey скрипт, на https://regex101.com/ проверил regex формулу замены, работала отлично. У меня подозрение что в скрипте ошибка где-то в строке TagName("a") ведь моя искомая ссыль не а href. // ==UserScript== // @name fromWR // @namespace mysite // @include http://mysite.com* // @version 1 // @grant none // ==/UserScript== var links = document.getElementsByTagName("a"); //array var regex = /^(waitingroom\/)(.+)/ig; for (var i=0,imax=links.length; i<imax; i++) { links[i].href = links[i].href.replace(regex,"videochat/$2/?from=wr"); } |
bombino1,
Знаете ли вы селекторы? Селекторы атрибутов querySelectorAll прочитайте пожалуйста там по 10 строк всего |
А ещё что такое вообще свойства и атрибуты.
|
var links = document.getElementsByTagName("data-url");
var links = document.getElementsById("data-url"); var links = document.getElementById("data-url"); попробовал, тот же эффект. Шайзе( Ну да ладно, брошу это дело. Про Атрибуты и DOM (который построил Джек) пытался прочесть но ничего не понял. |
querySelectorAll
|
Часовой пояс GMT +3, время: 01:36. |
|