`
冰封王座
  • 浏览: 9132 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个使用外部Javascript修正特定网页内容的方法

阅读更多

一个使用外部Javascript修正特定网页内容的方法

 

这段代码算是本人练手帮助别人搞定的一个标题写的。
要求是这样的:

<ahref="window.open('','')">test</a>

 

这个不可以变,只可以正在外面办事情,那要怎么办呢?

要求点击后面的连接,打开一新页面,并正在原页面举办其他操作。

分析可知:后面打开新页面的写法本人便是过失的,底子没法打开新页面。准确的写法应该是:


<ahref="javascript:void(0)"onclick="window.open('','')">test</a>


因此搞定办法便是用内部js修改连接的内容。先要确定哪个链接内部的href属性包含“window.open”,然后为其增加onclick属性,并将href内容赋给它。然后修改href属性内容。


但搞定过程中看见一个标题,读取href属性内容时不克不及取得其实践内容,而是网页的url路径(去除了最后的页面文件名)+href内容,还要把后面的url去掉。这个可以用substring()分别indexOf()搞定。
至于正在原页面些内容就庞杂多了。
遵照分析写了以下测试代码,实现了后面的要求:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns ="http://www.w3.org/1999/xhtml" xml:lang ="en" lang ="en">
 <head>
 <title></title>
 <script type ="text/javascript">
 function addEvent(elm,evType,fn,useCapture){
 if(elm.addEventListener){ elm.addEventListener(evType,fn,useCapture);
 return true;
 }else if(elm.attachEvent){
 var r=elm.attachEvent("on"+evType,fn);
 return r;
 }else{
 alert("Handler could not be removed");
 }
 }
 function doOther(){
 if(event.srcElement.tagName=="A"&&
 event.srcElement.getAttribute("href").indexOf("window.open")!=-1){
event.srcElement.setAttribute("onclick",eval(event.srcElement.href.substring(event.srcElement.href.lastIndexOf("/")+1,event.srcElement.href.length)));
event.srcElement.setAttribute("href","javascript:void(0)");
document.getElementById("test").innerHTML="<font color=#ff0000><b>能否是这容貌?</b></font>"
 }
 }
 addEvent(document,"click",doOther);
 </script>
 </head>
 <body>
test
<div id="test"></div> 
</body> 
</html>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics