我從$ .ajax從服務器獲取內容。而這些內容的HTML字符串,他們有自己的風格歐文,以下是我的代碼:
<script src="jquery-1.7.1.js" type="text/javascript"></script>
<link href="Default.css" rel="stylesheet" />
<link href="all.css" rel="stylesheet" />
<script type="text/javascript">
var dataStr = "indexOfStart=" + 0;
$(document).ready(function() {
$("#idgetData").click(function() {
$.ajax({
type: "post",
url: "http://localhost:1897/Content/Services/Service1.asmx/GetArticlesDuring",
dataType: "jsonp",
data: { indexOfStart: 0, indexOfEnd: 20 },
jsonp: 'back',
success: function (result) {
var res = decodeURIComponent(result.Result);
document.getElementById("content").innerHTML = res;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
targetDiv = $("#data");
if (errorThrown || textStatus == "error" || textStatus == "parsererror" || textStatus == "notmodified") {
targetDiv.replaceWith("請求數據時發生錯誤!");
return;
}
if (textStatus == "timeout") {
targetDiv.replaceWith("請求數據超時!");
return;
}
},
complete: function() {
//addStyle("Default.css");
//addStyle("all.css");
document.write('<link href="Default.css" rel="stylesheet" /><link href="all.css" rel="stylesheet" />');
}
});
});
});
function addStyle(stylePath) {
var container = document.getElementsByTagName("head")[0];
var addStyle = document.createElement("link");
addStyle.rel = "stylesheet";
addStyle.type = "text/css";
addStyle.href = stylePath;
container.appendChild(addStyle);
}
問題是內容的風格不能被加載和工作, 誰能幫助我嗎?
是的,你是對的。我發現問題出在html中的內容字符串中,在樣式類名稱之前,有「+」(加號)。這是因爲在發送內容的C#代碼中,我使用了「Server.UrlEncode(string) 「,這會造成」+「問題。我找到解決方案:在C#代碼中,我使用「Microsoft.JScript.GlobalObject.encodeURIComponent(string)」來編碼html內容,在客戶端js代碼中,我使用「decodeURIComponent」來解碼。如此完美的方式,現在可以。並且非常感謝你! – francis
我很高興我能夠幫助,這是沒有問題的 – BrotherBallan