簡體   English   中英

如果更改頁面上的Javascript字符串鏈接無效,我也不知道為什么?

[英]If a change a Javascript string links on a page don't work, and I don't know why?

我有一個查詢SharePoint列表的JavaScript文件。 效果很好,但返回了我無法解決的“未定義”行:

在此處輸入圖片說明

很好,所以我認為我只是將其從代碼中刪除。

如果我使用此字符串:

      txtTitle = txtTitle + "<p><a  href='/sites/it/ITInfrastructure/SitePages/Service%20Catalog‌​ue%20Devices.aspx?di‌​d=" + tempID + "'>" + tempTitle + "</a>" + "</p>";

未定義消失了,但是所有鏈接都不起作用,盡管如果我使用顯示“未定義”的字符串,它們是完全相同的鏈接?

txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=" + tempID + "'>" + tempTitle +  "</a> - " + tempDeviceType + "</p>";

這是一個鏈接示例: http : //example.com/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=10

我正在使用的兩個js文件(getDevices和getDeviceDetails)的代碼如下:

getDevices

function getDevices() {
var txtTitle = "";
var txtDeviceType = "";


   var query = "http://example.com/sites/it/ITInfrastructure/_vti_bin/listdata.svc/Devices?select=ID,Title";

var call = $.ajax({
        url: query,
        type: "GET",
        dataType: "json",
        headers: {
            Accept: "application/json;odata=verbose"
        }       
    });


call.done(function (data,textStatus, jqXHR){
    $.each(data.d.results, function (i, result) {

        var tempID = result.Id;
        var tempTitle = result.Title;
        var tempDeviceType = result.DeviceTypeValue;



        txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=" + tempID + "'>" + tempTitle +  "</a> - " + tempDeviceType + "</p>";
        //txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalog‌​ue%20Devices.aspx?di‌​d=" + tempID + "'>" + tempTitle + "</a>" + "</p>";



    });
    $('#devices').append($(txtTitle));
});
call.fail(function (jqXHR,textStatus,errorThrown){
    alert("Error retrieving data: " + jqXHR.responseText);
});
}

getDeviceDetails

function getDeviceDetails() {
var txtTitle = "";
var txtName = "";
var txtOverview = "";
var txtAccessories = "";
var txtDevicetype = "";
var txtTypicalDeviceUsage ="";
var txtKnownSystemIssues ="";
var txtTrafficlight = "";
var imgDevicePicture = "";
var tempLCS2 = "";
var HTML = "<h3>Desktop</h3>";
var Laptop = "Y"
var Tabs="Y" ;  
  var query  
  = "http://example.com/sites/it/ITInfrastructure/_vti_bin/listdata.svc/Devices?$expand=Priority&$filter=Id eq " + window.DeviceId + "";




var call = $.ajax({
        url: query,
        type: "GET",
        dataType: "json",
        headers: {
            Accept: "application/json;odata=verbose"
        }       
    });
call.done(function (data,textStatus, jqXHR){
$.each(data.d.results, function(index, item) {
        var tempID = item.Id;
        var NameofDevice = item.Title;
        var tempTitle = item.Title;
        var DeviceOverView = item.Description;
        var AccessDetails = item.Accessories;
        var DeviceKind = item.DevicetypeValue;
        var Usage = item.TypicalUsage;
        var DevicePriority = item.PriorityValue;
        var DeviceImage = item.DeviceImage;

        txtTitle = "<p>";  

        txtName = "<p>" + NameofDevice + "</p>" +  DeviceKind + "</p>";
        txtOverview = "<p>" + DeviceOverView + "</p>";
        txtAccessories = "<p>" + AccessDetails + "</p>";  
        txtDevicetype = "<p>" + DeviceKind  + "</p>";
        txtTypicalDeviceUsage = "<p>" + Usage + "</p>";
        txtTrafficlight = "<p>" + DevicePriority + "</p>";
        imgDevicePicture = "<img src='" + DeviceImage + "'>";

    });
    $('#devicedetails').append($(txtTitle));  
    $('#deviceoverview').append($(txtOverview));
    $('devicename').append(txtName);
    $('#devicekind').append(txtDevicetype);
    $('#deviceacc').append(txtAccessories);
    $('#deviceuse').append(txtTypicalDeviceUsage);
    $('#devicestatus').append(txtTrafficlight);
    $('#imageContainer').append("<img src='/sites/IT/ITInfrastructure/SiteAssets/"+txtTrafficlight.replace(/<[^>]*>/g, '')+".png' />");
    $('.deviceimage').append(imgDevicePicture); 

});
call.fail(function (jqXHR,textStatus,errorThrown){
    alert("Error retrieving data: " + jqXHR.responseText);
});

}

您有一些字符集問題。 復制時粘貼以下行:

    txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=" + tempID + "'>" + tempTitle +  "</a> - " + tempDeviceType + "</p>";
    //txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalog‌​ue%20Devices.aspx?di‌​d=" + tempID + "'>" + tempTitle + "</a>" + "</p>";

在具有ANSI編碼的notepadd ++中,我得到:

txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=" + tempID + "'>" + tempTitle +  "</a> - " + tempDeviceType + "</p>";
//txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalog??ue%20Devices.aspx?di??d=" + tempID + "'>" + tempTitle + "</a>" + "</p>";

注意“ ??” 在“ Service%20Catalogue%20Devices”和“ did”部分中。 我認為這是導致您的鏈接失敗的原因。

這可以消除“未定義”:

txtTitle = txtTitle + "<p><a href='/sites/it/ITInfrastructure/SitePages/Service%20Catalogue%20Devices.aspx?did=" + tempID + "'>" + tempTitle + "</a></p>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM