2011-01-09 82 views
0

下面的Javascript有一個默認的圖像,但我想這個鏈接顯示文本「只有文本url」,而不是此鏈接http://developer.mixi.co.jp/wp-content/uploads/2010/09/bt_check_1.gif此腳本默認爲。這可能嗎?如何阻止Javascript顯示默認圖片和鏈接文字?

<div> 
<a href="http://mixi.jp/share.pl" class="mixi-check-button" data-key="some-data-key" data-url="http://someurl.com">only text url </a> 
<script type="text/javascript" src="http://static.mixi.jp/js/share.js"></script> 
</div> 

回答

0

假設這是合法的(如果您對此腳本進行了修改,將此腳本嵌入到您的站點中可能不合法),我們可以使用online JavaScript beautifier對腳本進行解壓縮。結果是這樣的:

http://www.jsfiddle.net/T4Rrh/

我們感興趣的比特是最後for循環在那裏,每個按鈕進行處理。我們可以安全地去除大部分的圖像生成和協議嗅探(不必要的實踐中,通過的方式)來減少碼的重量:

var type = (button["button"] || "button-1.png").split("-"); 
var prefix = ("https:" == document.location.protocol) ? "https://mixi.jp/" : "http://static.mixi.jp/"; 
if (!type || type.length < 2) type = ["button", "1.png"]; 
if (type[1].indexOf(".") == -1) type[1] += ".png"; 
var src = (type[0] == "button") ? [prefix, "img/basic/mixicheck_entry/bt_check_", type[1]] : (type[0] == "icon") ? [prefix, "img/basic/mixicheck_entry/icon_mixi_", type[1]] : [prefix, "img/basic/mixicheck_entry/bt_check_1.png"]; 
src = src.join(""); 

var img = document.createElement("img"); 
img.setAttribute("src", src); 
img.style.border = "0"; 
var element = button.element; 
for (var j = element.childNodes.length - 1; j >= 0; j--) { 
    element.removeChild(element.childNodes[j]); 
} 
element.appendChild(img); 

應當既除去。然後,您可以縮小並保存代碼,然後自己在頁面中提供它。下面是清理代碼如下所示:http://www.jsfiddle.net/XrYLX/


第二種方法:

使用CSS,我們首先刪除的JavaScript其刪除按鈕元素的所有子節點的一部分,所以文裏面的按鈕不刪除:

for (var j = element.childNodes.length - 1; j >= 0; j--) { 
    element.removeChild(element.childNodes[j]); 
} 

我們再申請一些CSS隱藏圖像:

.mixi-check-button img { 
    display: none; 
} 

參見:http://www.jsfiddle.net/T4Rrh/1/

+0

@Yi Jiang - 感謝您編輯這個問題,因爲我無法添加按鈕,因爲我是新的stackoverflow。我試過這個,並且「唯一的文本url」出現了,但它沒有與SNS連接,導致「無數據」錯誤。上面的代碼中是否有需要發送到此SNS的內容? – tokyowp 2011-01-10 09:39:02

0

複製該腳本到您的網站,並在最後一行的開頭刪除element.appendChild(img);

+0

我試過這個,但它不起作用。 – tokyowp 2011-01-10 09:39:25