-1

我正在创建一个向网站添加新功能的用户脚本。该网站有很多用户,但没有搜索用户的功能。
我想创建这样的功能。为此,我在现有的搜索页面中创建了一个按钮,用于其他搜索目的。当我单击该按钮时,我需要脚本在 Google 上搜索输入并获取 URL,并在不存在的页面上以一段 HTML 代码显示结果。

我可以用用户脚本伪造一个 URL,以便它使用它来显示 HTML 吗?

如果没有,我可以替换页面中的某些 HTML 吗?

代码并不是那么有趣。它只是添加一个带有链接的按钮,并在不存在的页面上选择它。

代码:

if (document.URL == "http://www.bierdopje.com/search" || document.URL == "http://www.bierdopje.com/search/" || window.location.href.indexOf("search/shows") > -1 || window.location.href.indexOf("search/episodes") > -1 || window.location.href.indexOf("search/forum") > -1) {
var users = document.createElement('li');
users.setAttribute('class', 'strong');
var UsersNode = document.createTextNode("Gebruikers");
var UsersLink = document.createElement('a');
UsersLink.setAttribute('href', 'http://www.bierdopje.com/search/users/');

document.getElementById("submenu").childNodes[1].appendChild(users).appendChild(UsersLink).appendChild(UsersNode);

if (window.location.href.indexOf("search/users/") > -1) {
    UsersLink.setAttribute('href', './');
    UsersLink.setAttribute('class', 'selected');
}
}

4

2 回答 2

0

很抱歉回答我自己的问题,但就像 Brock Adams 已经说过的那样:它可能过于本地化。
伪造 url 的解决方案是替换 404 not found 内容。

如果有一个带有标题和段落的容器,请通过将其设为变量来查找容器,然后将其替换为另一个变量:

// find the container
var example = document.getElementById('container').childNodes[0];

// set new container
var newcontainer = document.createElement('div');
newcontainer.setAttribute('id', 'ncontainer');

// replace the existing container with the new one
example.parentNode.replaceChild(replacement, example);

// write content to the new container
document.getElementById('ncontainer').innerHTML ='<p>This is not a 404 anymore</p>';

可能有更多更短的方法可以实现这一点,但可以通过 Google 找到它们(javascript 替换)。

要替换整个页面,请使用

document.write()


要完成页面,您可以使用以下内容设置标题:

document.title = "WEBSITE TITLE";
于 2013-05-25T20:42:56.350 回答
0

你最好为你的浏览器创建一个扩展。它并不像看起来那么复杂。

有了这个,您可以在从扩展程序中弹出的 HTML 窗口中运行 Javascript 函数。
https://justinribeiro.github.io/chrome-extensions-codelab-gdg-oakdale/images/screenshot-20150108-step-02-blank-popup-loaded.png

于 2017-05-13T16:29:17.897 回答