2016-03-15 29 views
0

我正在使用Sharepoint應用程序。它們是從Sharepoint站點列表中獲取聯繫詳細信息的一種功能。 這裏是我的一段代碼:decodeURI問題 - 超鏈接變成純文本

var currentOpeningContent = '<h4 onclick="ShowJobDetail(\'' + encodeURI(currentOpeningTitle.text()) + encodeURI(currentOpeningRR.text()) '\');">'+Show details+'</h4>'; 

$("#open_jobs").append(currentOpeningContent); 

function ShowJobDetail(title, roles) 
{ 
    $(".job_page_title").html(decodeURI(title)); 
    $(".job_roles").html(decodeURI(roles)); 
} 

唯一的問題是,當一個電子郵件ID,在「角色」獲得通過,成爲因爲decodeURI的純文本。 但我想要的是,當用戶點擊電子郵件ID,彈出窗口應該打開。

+0

查看currentOpeningTitle.text和currentOpeningRR.text的示例值將會很有幫助。另見問題:[mailto使用javascript](http://stackoverflow.com/questions/10172499/mailto-using-javascript) – Roberto

回答

0

我不完全瞭解您的問題,但我認爲代碼已損壞。

正如你已經在使用jQuery,而不是做這個醜陋的東西:

var currentOpeningContent = '<h4 onclick="ShowJobDetail(\'' 
    + encodeURI(currentOpeningTitle.text()) 
    + encodeURI(currentOpeningRR.text()) '\');">' 
    + Show details 
    + '</h4>'; 

$("#open_jobs").append(currentOpeningContent); 

請那樣做:

var $currentOpeningContent = $('<h4>Show details</h4>').click(encode); 

function encode(e){ 
    var title = '' + encodeURI(currentOpeningTitle.text()) + encodeURI(currentOpeningRR.text()); 

    ShowJobDetail(title, roles); //"roles" is undefined! that's probably not wat you want 
} 

$("#open_jobs").append($currentOpeningContent); 

這是一個1:1的 「成績單」 你碼。點擊「h1」時,您可以看到「角色」未定義。看來你只是忘記了你的函數參數之間的昏迷。

注意:切勿將JS明確放入HTML字符串中。這只是要求麻煩。另外 - 使用jQuery時 - 儘量避免使用純html字符串,而採用jQuery「HTML生成」方法。