2011-01-09 81 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