Home » 電腦技巧

防止 Hinet 空間的廣告彈出(三)

網路廣告真的是一塊大餅,連 Hinet 都無所不用其極的想在每個網頁中都加上廣告。之前是使用一個彈出式的視窗來顯示廣告,現在更是猛啦~直接幫使用者的網頁包在 Frameset 中,然後再切出一塊來顯示廣告。

avoid_hinet_ad_3_1

可別以為右半邊的圖片是我自己加進去的唷,那可是 Hinet 的廣告樣式啊!這樣一來的話~連同原先的彈出式廣告,現在又多了一個廣告了,且新廣告根本就已經佔據了使用者網頁約 1/7 了嘛,廣告又那些大那麼礙眼,真是氣死人了啦!

擋彈出式廣告的語法可在防止 Hinet 空間的廣告彈出防止 Hinet 空間的廣告彈出(二)中找到,現在~就要來教大家怎樣把那佔了網頁約 1/7 的廣告給隱藏起來。

在開始教之前要先說明一下此次 Hinet 新式廣告的執行原理。Hinet 現在是在網頁的開頭加上了廣告的語法

1
2
3
4
5
6
<script language = "JavaScript" SRC="http://hiad.myweb.hinet.net/new-inner.js"></script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

所以想用之前的方式躲是不行的,因此只能使用消極的方法-隱藏它。

因為 Hinet 它們是使用 document.write 的方式加入 Frameset 來改寫網頁的內容,因此我們只能去把廣告框架的部份給隱藏起來(雖然看不見,但它依舊存在)。

只要在網頁的開頭加上

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
	try{
		parent.document.getElementById("MywebFrameSet").cols="*,0";
	}catch(err){}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

這樣就能在廣告出現時就馬上隱藏起來了,但彈出式廣告的語法還是要記得加上喔!這樣一來就有個沒廣告的網頁了

avoid_hinet_ad_3_2

雖然感覺有點美中不足,但加減用吧,誰叫我們使用 Hinet 提供的免費網頁空間呢!

另外還有網友提到用 Domain 方式去轉的就不會有新的廣告出現,各位可以試試看。不過別用免費的轉址服務咧,那些服務大多也是帶有廣告的啊!

2008/07/08 Hinet 廣告程式更新

原本以為這樣改完就能相安無事了,誰知道 Hinet 廣告程式邊測試邊改,所以原本只是加入一個 Frameset 而已,現在會因瀏覽者螢幕的寬及一些條件來變更顯示的廣告圖片大小,因此又有可能會多加另外兩個 Frameset,所以如果只用之前的方法的話,現在可能還是會看到廣告

avoid_hinet_ad_3_3

現在讓我們再動手修改一下擋廣告的語法

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
	try{
		var _hinet = parent.document.getElementsByTagName("frameset");
		for(var i=0;i<_hinet.length;i++){
			_hinet[i].cols="*,0";
		}
	}catch(err){}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

嘿~只要把全部的 Frameset 都設定一次,管它有幾個 Frameset 也不用怕。這樣又能還給我們網頁一個乾淨的畫面囉!

另外有網友的網頁本身就有用到 Frameset,當有用到上面的方式的話,可能會破壞掉自己本身的網頁框架結構,所以就要指定我們要擋掉的 Frameset 是那幾個。目前知道 HinetFrameset 框架 IDMywebFrameSetMywebFrameSet_300250MywebFrameSet_120300 MywebFrameSet_1606004 個,因此只要用一開始教的方式來一一擋掉即可:

一樣是在網頁開頭加上

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
	try{
		parent.document.getElementById("MywebFrameSet").cols="*,0";
	}catch(err){}
	try{
		parent.document.getElementById("MywebFrameSet_300250").cols="*,0";
	}catch(err){}
	try{
		parent.document.getElementById("MywebFrameSet_120300").cols="*,0";
	}catch(err){}
	try{
		parent.document.getElementById("MywebFrameSet_160600").cols="*,0";
	}catch(err){}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

或是判斷關鍵字 MywebFrameSet 來做過慮的動作也可以:

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
	try{
		var _hinet = parent.document.getElementsByTagName("frameset");
		for(var i=0;i<_hinet.length;i++){
			if(_hinet[i].id.indexOf("MywebFrameSet")>=0){
				_hinet[i].cols="*,0";
			}
		}
	}catch(err){}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

未使用語法前的畫面

avoid_hinet_ad_3_4

使用上述兩種語法後的畫面

avoid_hinet_ad_3_5

還有一點,現在 Hinet 好像要把廣告主力改為框架式的,但如果是經過轉址的話,它雖然不會在網頁中加入框架,但是會有彈出式廣告,因此除了以上的語法之外,建議如果有用轉址的網友請再加上:

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
	try{
		ADPage.close();
	}catch(err){}
	CheckADPage = function(){};
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-tw">
<head>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="男丁格爾's 脫殼玩" />

範例瀏覽:
http://abgne.myweb.hinet.net/Teacher/0012/0012_1.html (無框架)
http://abgne.myweb.hinet.net/Teacher/0012/0012_2.html (有框架)

17 筆針對 防止 Hinet 空間的廣告彈出(三) 的迴響

  1. 我加您寫的以下這個後 跳出式廣告真的不會跳出來 但是問題來了 我插入的導覽列功能 全部都不見看不到了 有甚麼發法可幫忙一下囉 謝謝

    try{
    ADPage.close();
    }catch(err){}
    CheckADPage = function(){};

  2. 站長您好:我的網站經過轉址但會有彈跳視窗我加了

    try{
    ADPage.close();
    }catch(err){}
    CheckADPage = function(){};

    還是一樣會跳出hinet廣告,請問還有什麼方法可以讓彈跳廣告不見呢?
    我的網站:www.5205.tw

  3. 我的網址是http://www.hsuanyi168.com.tw 我用namo webeditor編寫我的網頁,用了插入導覽列功能,如果不插入您的程式碼當然跳出式廣告會跳出來,插入後導覽列功能就不見了當然廣告也不會跑出來

  4. 站長您好:我的網站經過轉址但會有彈跳視窗我加了
    try{
    ADPage.close();
    }catch(err){}
    CheckADPage = function(){};
    還是會跳出來,能麻煩幫我看一下嗎!!非常感謝
    我的網址http://www.clayatelier.com
    希望能快點解決!!!謝謝

    • 你有試著加這段嗎?

      檢視原始碼 JavaScript
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      <script type="text/javascript">
      	try{
      		parent.document.getElementById("MywebFrameSet").cols="*,0";
      	}catch(err){}
      	try{
      		parent.document.getElementById("MywebFrameSet_300250").cols="*,0";
      	}catch(err){}
      	try{
      		parent.document.getElementById("MywebFrameSet_120300").cols="*,0";
      	}catch(err){}
      	try{
      		parent.document.getElementById("MywebFrameSet_160600").cols="*,0";
      	}catch(err){}
      </script>
  5. 現在HINET空間都在網頁開頭強制加入廣告碼
    那宣告不就無效化了?
    (我本機離線測試真的一樣無效,剛好我網頁有部份功能需用此宣告,有點麻煩呀)
    有沒有辦法讓它有效化呀?網頁改了好久現在又卡在這很白癡的點上

  6. 男丁老師:
    請教您,我想彈出一個視窗內容是一個清單提供選擇,點選清單內容某個選項便會把該選項名稱傳回網頁欄位內(方便使用者不用keyin太多字)

    請問有那個合適套件可以用呢?

    感謝

    • 要開一個新視窗可以使用 open(url, name, attr) 的方式來開啟
      如果 url 是同個網域的網頁的話, 就可以做到互動的效果(互相控制)

發表迴響