decodeURI问题 - 超链接变为纯文本

时间:2016-03-15 11:53:06

标签: javascript sharepoint decodeuricomponent

我正在使用Sharepoint App。它们是从sharepoint站点列表中获取联系人详细信息的一项功能。 这是我的代码:

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时,弹出窗口应该打开。

1 个答案:

答案 0 :(得分: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-generating”方法。