РЕШЕНО благодаря помощи Геллиона!
Вот код:
// ==UserScript==
// @name Facebook Comment Moderation Links
// @description Appends story titles to Facebook Comment Moderation "Visit Website" links
// @include http*://developers.facebook.com/tools/*
// ==/UserScript==
var allLinks, thisLink, expr, pageTitle, myURL, myPage, pageContent, title;
// grabbing URLs
function fetchPage(myPage, targetLink) {
GM_xmlhttpRequest({
method: 'GET',
url: myPage,
onload: function(response){
// get the HTML content of the page
pageContent = response.responseText;
// use regex to extract its h1 tag
pageTitle = pageContent.match(/<h1.*?>(.*?)<\/h1>/g)[0];
// strip html tags from the result
pageTitle = pageTitle.replace(/<.*?>/g, '');
// append headline to Visit Website link
title = document.createElement('div');
title.style.backgroundColor = "yellow";
title.style.color = "#000";
title.appendChild(document.createTextNode(pageTitle));
targetLink.parentNode.insertBefore(title, targetLink.nextSibling);
}
});
}
function processLinks() {
// define which links to look for
expr = "//a[contains (string(), 'Visit Website')]";
allLinks = document.evaluate(
expr,
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
// loop through the links
for (var i = 0; i < allLinks.snapshotLength; i++) {
thisLink = allLinks.snapshotItem(i);
myURL = thisLink.getAttribute('href');
// follow Visit Website link and attach corresponding headline
fetchPage(myURL, thisLink);
}
}
// get the ball rolling
processLinks();
--- НИЖЕ РАННЕЕ ВЕРХНИЙ ---
Я пытаюсь сделатьСкрипт Greasemonkey, который извлекает URL-адрес из каждого набора ссылок и добавляет содержимое тега h1 страницы в конец ссылки.
До сих пор я мог получить его для отображения самого URL-адреса, который нене требует запроса страницы, но не содержимого тега h1 страницы, что и требуется.
Из других вопросов на этом сайте я понимаю, что GM_xmlhttpRequest является асинхронным, и я почти уверен, что это как минимум часть причины.Однако я не могу найти решение этой конкретной проблемы.
Ниже приведен код, который я имею до сих пор.Он предназначен для инструмента модерации комментариев на веб-сайте Facebook - в представлении модератора каждый комментарий имеет ссылку «Посетить веб-сайт», которая ведет вас к статье, к которой относится комментарий.
Как написано прямо сейчас,он добавит код состояния HTTP, а не заголовок страницы, а затем URL-адрес каждой ссылки «Посетить веб-сайт».Часть кода состояния является просто заполнителем.Я планирую добавить разбор HTML и т. Д., Чтобы позже получить тег h1.
Сейчас я просто пытаюсь получить запрос GM_xmlhttpRequest и вставку содержимого.
Любая помощьРазберитесь в этом с благодарностью.Спасибо!
var allLinks, thisLink, expr, pageTitle, myURL, pageContent, title;
// define which links to process
expr = "//a[contains (string(), 'Visit Website')]";
allLinks = document.evaluate(
expr,
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
// cycle through links
for (var i = 0; i < allLinks.snapshotLength; i++) {
thisLink = allLinks.snapshotItem(i);
myURL = thisLink.getAttribute('href');
GM_xmlhttpRequest({
method: 'GET',
url: myURL,
onload: function(responseDetails){
pageTitle = responseDetails.status;
}
});
// append info to end of each link
title = document.createElement('div');
title.style.backgroundColor = "yellow";
title.style.color = "#000";
title.appendChild(document.createTextNode(
' [' + pageTitle + ' - ' + thisLink.getAttribute('href') + ']'));
thisLink.parentNode.insertBefore(title, thisLink.nextSibling);
}