Я ищу быстрый способ получить некоторые данные с одной веб-страницы и перекинуть их на другую. У меня нет доступа к строке запроса в URL-адресе второй страницы, поэтому передача данных таким способом невозможна. Прямо сейчас я использую пользовательский скрипт Greasemonkey в тандеме с триггером JS bookmarklet: javascript:doIt();
// ==UserScript==
// @include public_site
// @include internal_site
// ==/UserScript==
if (document.location.host.match(internal_site)) {
var datum1 = GM_getValue("d1");
var datum2 = GM_getValue("d2");
}
unsafeWindow.doIt = function() {
if(document.location.host.match(public_site)) {
var d1 = innerHTML of page element 1;
var d2 = innerHTML of page element 2;
//Next two lines use setTimeout to bypass GM_setValue restriction
window.setTimeout(function() {GM_setValue("d1", d1);}, 0);
window.setTimeout(function() {GM_setValue("d2", d2);}, 0);
}
else if(document.location.host.match(internal_site)) {
document.getElementById("field1").value = datum1;
document.getElementById("field2").value = datum2;
}
}
Хотя я открыт для другого метода, я бы предпочел остаться с этой базовой моделью, если это возможно, так как это лишь небольшая часть кода в doIt()
, который используется на нескольких других страницах, в основном для автоматизации датирования. основанные формы заполняет; людям действительно нравится их "волшебная кнопка".
Приведенный выше код работает, но есть прерывание рабочего процесса: чтобы пользователь знал, с какой страницы на общедоступном сайте можно получить данные, сначала нужно открыть внутреннюю страницу. Затем, как только файл cookie GM устанавливается с общедоступной страницы, необходимо перезагрузить внутреннюю страницу, чтобы получить правильную информацию о переменных внутренней страницы. Мне интересно, есть ли способ GM_getValue()
во время клика по букмарклету, чтобы избежать необходимости обновления. Спасибо!