-2

这是一个普通的网站,有一个验证码和一个表单,提交并检查验证码是否正确,然后获取 id 并请求一些信息。

我无权访问此站点,它不是我的。我需要它来获取信息,但该网站没有好的设计,所以我想修改网站的设计,使其更好看,更直观。

我可以这样做吗?

我尝试将 PHP cUrl 和 jQuery $ajax 与 crossdomain true 一起使用,但我在这两者上都被拒绝访问。

重要提示:我想做的正是Firebug所做的,临时更改页面布局,当你刷新时你会丢失它,因为它是客户端的。

就像是:

javascript:changeContent();

可能吗?

4

2 回答 2

0

你不能。您可以使用 iFrame 包含该站点。但是您不仅可以更新它。如果可以,那么您可以为所有其他站点。这意味着,您可以访问 Facebook 之类的网站并进行更改。

访问 iFrame 的 DOM:

var iframe = document.getElementById('myframe'); // The id of the iFrame
var iFrame = iframe.contentWindow || iframe.contentDocument;
if (iFrame.document) { // DOM can be accessed
    iFrame = iFrame.document;
    iFrame.body.style.backgroundColor = "blue"; // Example
} else {
    // DOM can't be accessed in this browser.
}

我忘了。除非 iFrame 在您的域中,否则您无法访问它的 DOM。cross-site scripting根本不允许。所以得出结论:这是不可能的。

于 2013-07-17T19:30:19.737 回答
-1

对的,这是可能的。我找到了解决方案。

你想的更简单。我刚刚创建了一个 JavaScript 原生脚本,它通过获取 html 元素的“标识符”来修改所有整个站点元素、样式、宽度、高度等。

我的代码:

javascript:function z(a,b,c,d,e,f,g){x=document.getElementsByTagName(a);
if(b!=null)x=x[b].getElementsByTagName(c);if(d!=null)x=x[d].getElementsByTagName(e);if(f!=null)x=x[f].getElementsByTagName(g);return x;}
function i(v){return document.getElementById(v).style;}
b=document.body.style;
b.backgroundColor="#f3f3f3";
b.margin="13% auto";
b.width="400px";
b.height="160px";
b.border="1px solid #CCCCCC";
b.padding="10px";
z("label")[0].style.fontFamily="Segoe UI";
z("label")[0].style.fontSize="13px";
z("label")[0].style.padding="0px 0px 10px 0px";
z("table")[0].style.display = "none";
z("hr")[0].style.display = "none";
z("p")[0].style.display = "none";
z("p")[1].style.display = "none";
z("p")[2].style.display = "none";
z("td")[1].style.display = "none";
document.getElementsByName("opcao")[0].style.display = "none";
i("submit1").float = "left";
z("label")[0].style.float = "left";
z("label")[0].style.display = "block";
z("td")[4].style.float = "left";
z("font")[6].face = "Segoe UI";
z("td")[4].style.display = "block";
z("td")[4].style.width = "250px";
z("td")[3].style.float = "left";
z("td")[3].style.width = "300px";
document.getElementsByName("captcha")[0].style.float = "left";
document.getElementsByName("captcha")[0].style.width = "140px";
z("td")[4].style.float = "left";
document.getElementById("submit1").value = "Insert Data";
k=i("submit1");
k.color="#fff";
k.backgroundColor="#FFAF19";
k.border="1px solid #CCCCCC";
k.height="34px";
k.width="165px";

也许你在抱怨:

那些字母是什么??为什么代码使用一个字母的变量? 回复:这是因为您在浏览器地址栏中粘贴的字符大小限制约为 2000 个字符。

简单地说,我用过,例如:

document.getElementsByTagName('tag').getElementsByTagName('tag')[x];

//Like, for example:
document.getElementsByTagName('div')[0].getElementsByTagName('span')[0];
//The first span of the first div.

后来我这样做是为了找到元素并修改它们,并且:我创建了一个函数来为我用更少的字符来完成它。

这就是为什么代码如此难以理解的原因。

然后我只是在任何浏览器的地址栏上执行了这段代码,它就像一个魅力。

于 2013-08-08T12:22:58.610 回答