这是一个普通的网站,有一个CAPTCHA和一个提交并检查CAPTCHA是否正确的表格,然后获取id并请求获取一些信息。
我无法访问此网站,这不是我的网站。我需要它来获取信息,但网站没有很好的设计,所以我想修改网站的设计,以便更好地直观地看到。
我可以这样做吗?
我尝试使用PHP cUrl和jQuery $ ajax并使用crossdomain true,但我在两者上获得了访问被拒绝。
重要提示:我想完全执行Firebug所做的事情,对页面布局进行临时更改,当您刷新时因为它是客户端而丢失它。
类似的东西:
javascript:changeContent();
有可能吗?
答案 0 :(得分: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
。所以结论:这是不可能的。
答案 1 :(得分:-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.
接着我这样做是为了找到元素并修改它们,并且: 我创建了一个函数来为我做更少的字符。
这就是代码难以理解的原因。
然后我只是在任何浏览器的地址栏上执行此代码,它就像一个魅力。