2012-12-05 52 views
0

我有一個腳本,我正在使用,將改變鏈接從一個正常的鏈接到mailto鏈接。這個想法是最糟糕的機器人不會解析JavaScript,因此比把電子郵件地址按原樣或間隔並拼寫符號更好一些。通過電子郵件使用JS來改變鏈接

聯繫我們的銷售經理:

的HTML應該渲染。

電子郵件這個詞將是電子郵件的鏈接。然而,隨着JS代碼呈現如下:

通過[email protected]聯繫我們的銷售經理。

我想第一句話是如何呈現頁面。

下面是代碼:

HTML:

<p>Contact our Sales Manager by 
    <a class="email" title="email/email.com" href=" ">email</a>. 
</p> 

JS:

$(function() { 

    $('a.email').each(function(){ 

    var e = this.title.replace('/','@'); 

    $(this).text().replace('/','@'); 

    this.href=" "; 

    this.href = 'mailto:' + e; $(this).text(e); 

    }); 
}); 

我將如何修改腳本以保留字的電子郵件在那裏,但創建鏈接是否正確?

+0

我建議你可以閱讀關於JavaScript和字符串操作的更多信息 – pylover

+1

@ pylover - 我正在學習JS,並一步一步地完成它。 – L84

+0

看到我的答案和jsfiddle示例 – pylover

回答

1

這裏是一個工作示例:http://jsfiddle.net/smLQ7/

爲了解決這個問題,只需刪除的JavaScript的一個部分,因此它是這樣的:

$(document).ready(function() { 
    $('a.email').each(function(){ 
    var e = this.title.replace('/','@'); 
    $(this).text().replace('/','@'); 
    this.href=" "; 
    this.href = 'mailto:' + e; 
    }); 
});​ 

我們已經刪除了相關代碼:

$(this).text(e); 

它負責在頁面內容中用[email protected]代替email

1

更換

$(this).text(e) 

通過

$(this).text('email'); 

text('some string')替換元素通過它的參數內容。所以在你的情況下,鏈接的內容正在被電子郵件地址取代。

1

如果你打算通過JS做到這一點,那麼爲什麼還要把地址放在標籤中呢?

爲什麼不在(文檔)上嘗試這樣的事情。準備()

var theaddress ="mailto:[email protected]" 

$('a.email').attr('href',theaddress); 

編輯:

在這裏工作:http://jsfiddle.net/sMnrR/

+0

我想到了這一點,但我使用了模板,我可以將代碼粘貼到模板中,然後將類電子郵件和標題添加到特定的電子郵件地址。我知道似乎令人費解,但在我的情況下,它效果更好。儘管我可以在其他地方使用你的例子。謝謝! – L84

0

如果理解您的問題,這是解決方案:

$(function() { 
    $('a.email').each(function(){ 

    var e = this.title.replace('/','@'); 
    $(this) 
     .attr('href','mailto:' + e) 
     .text(e.substr(0,e.indexOf("@"))); 
    }); 
});​ 

看看jsfiddle