關於js廣告被遮蔽時的解決辦法
阿新 • • 發佈:2018-11-27
關於廣告被遮蔽時的解決辦法1
獲取整個頁面的a標籤的href,target,onclick跳轉
存進一個數組
獲取廣告,當被影藏或找不到時,
修改全部的a標籤,使其跳轉到廣告頁面,
第一次點選後,把數組裡的資料全部返回給a標籤,
第二次點選正常
程式碼如下:
html部分:
<div class="aaa" style="width: 100px;height: 100px;background: black;display: none;"></div>
<a href="http://www.baidu.com" target="_blank"><div></div></a>
<a href="http://www.baidu.com" ><div></div></a>
<a href="http://www.baidu.com" onclick="" target="_blank"><div></div></a>
<!--<!–<a href="javascript:void(0);" onclick="window.location.href='http://www.baidu.com'" target="_blank"><div></div></a><br/>–>只會當前頁面開啟-->
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank"><div></div></a><br/>
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank">
js部分:
window.onload=function () {
var aaa=document.getElementsByClassName("aaa");
var a=document.getElementsByTagName("a");
console.log(a);
console.log(aaa)
var array=[];
// var click=true;
for(var i=0;i<a.length;i++){
if(a[i].getAttributeNode("onclick")==null){
console.log("111")
click="";
}else{
click=a[i].getAttributeNode("onclick").nodeValue;
}
// click=true;
array.push({href:a[i].href,target:a[i].target,click:click});
}
console.log(array);
//||aaa[0].style.visibility=="hidden"
if(aaa[0].style.display=="none"){
for(var i=0;i<a.length;i++){
a[i].href="http://www.youku.com";
if(a[i].getAttributeNode("onclick")==null){
var kaiguan=true;
a[i].onclick=function () {
dianji();
console.log(kaiguan)
}
}else{
a[i].getAttributeNode("onclick").nodeValue=null;
var kaiguan=true;
a[i].onclick=function () {
dianji();
console.log(kaiguan)
}
}
a[i].target="_blank";
}
}
/* if(kaiguan){
}else{
a.onclick= function () {
dianji()
}
}*/
function dianji() {
if(!kaiguan){
for(var i=0;i<a.length;i++){
a[i].href=array[i].href;
if(a[i].getAttributeNode("onclick")==null){
}else{
a[i].getAttributeNode("onclick").nodeValue=array[i].click;
}
a[i].target=array[i].target;
}
}else{
kaiguan=false;
}
}
console.log(a)
}
還有一點問題:如果是a標籤的onclick事件,第二次點選不會彈出原來的地址,第二次只會改變地址,第三次才能彈出原來的
獲取整個頁面的a標籤的href,target,onclick跳轉
存進一個數組
獲取廣告,當被影藏或找不到時,
修改全部的a標籤,使其跳轉到廣告頁面,
第一次點選後,把數組裡的資料全部返回給a標籤,
第二次點選正常
程式碼如下:
html部分:
<div class="aaa" style="width: 100px;height: 100px;background: black;display: none;"></div>
<a href="http://www.baidu.com" target="_blank"><div></div></a>
<a href="http://www.baidu.com" ><div></div></a>
<a href="http://www.baidu.com" onclick="" target="_blank"><div></div></a>
<!--<!–<a href="javascript:void(0);" onclick="window.location.href='http://www.baidu.com'" target="_blank"><div></div></a><br/>–>只會當前頁面開啟-->
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank"><div></div></a><br/>
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank">
js部分:
window.onload=function () {
var aaa=document.getElementsByClassName("aaa");
var a=document.getElementsByTagName("a");
console.log(a);
console.log(aaa)
var array=[];
// var click=true;
for(var i=0;i<a.length;i++){
if(a[i].getAttributeNode("onclick")==null){
console.log("111")
click="";
}else{
click=a[i].getAttributeNode("onclick").nodeValue;
}
// click=true;
array.push({href:a[i].href,target:a[i].target,click:click});
}
console.log(array);
//||aaa[0].style.visibility=="hidden"
if(aaa[0].style.display=="none"){
for(var i=0;i<a.length;i++){
a[i].href="http://www.youku.com";
if(a[i].getAttributeNode("onclick")==null){
var kaiguan=true;
a[i].onclick=function () {
dianji();
console.log(kaiguan)
}
}else{
a[i].getAttributeNode("onclick").nodeValue=null;
var kaiguan=true;
a[i].onclick=function () {
dianji();
console.log(kaiguan)
}
}
a[i].target="_blank";
}
}
/* if(kaiguan){
}else{
a.onclick= function () {
dianji()
}
}*/
function dianji() {
if(!kaiguan){
for(var i=0;i<a.length;i++){
a[i].href=array[i].href;
if(a[i].getAttributeNode("onclick")==null){
}else{
a[i].getAttributeNode("onclick").nodeValue=array[i].click;
}
a[i].target=array[i].target;
}
}else{
kaiguan=false;
}
}
console.log(a)
}
還有一點問題:如果是a標籤的onclick事件,第二次點選不會彈出原來的地址,第二次只會改變地址,第三次才能彈出原來的