Jquery $.ajax完成后加载css文件
我通过$.ajax从服务器获取内容。这些内容是html字符串,它们有自己的owen风格,下面是我的代码:Jquery $.ajax完成后加载css文件,jquery,css,Jquery,Css,我通过$.ajax从服务器获取内容。这些内容是html字符串,它们有自己的owen风格,下面是我的代码: <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/j
<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);
}
var dataStr=“indexOfStart=“+0;
$(文档).ready(函数(){
$(“#idgetData”)。单击(函数(){
$.ajax({
类型:“post”,
url:“http://localhost:1897/Content/Services/Service1.asmx/GetArticlesDuring",
数据类型:“jsonp”,
数据:{indexOfStart:0,indexOfEnd:20},
jsonp:'返回',
成功:功能(结果){
var res=解码组件(result.result);
document.getElementById(“内容”).innerHTML=res;
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
targetDiv=$(“#数据”);
如果(ErrorSprown | | textStatus==“error”| | textStatus==“parsererror”| | textStatus==“notmodified”){
targetDiv.replacetwith(“请求数据时发生错误!");
返回;
}
如果(textStatus==“超时”){
targetDiv.replacetwith(“请求数据超时!");
返回;
}
},
完成:函数(){
//addStyle(“Default.css”);
//addStyle(“all.css”);
文件。写(“”);
}
});
});
});
函数addStyle(stylePath){
var container=document.getElementsByTagName(“head”)[0];
var addStyle=document.createElement(“链接”);
addStyle.rel=“样式表”;
addStyle.type=“text/css”;
addStyle.href=stylePath;
container.appendChild(addStyle);
}
问题是内容的样式无法加载和工作,
有人能帮我吗?您不需要在请求完成后加载样式,因为一旦加载css,它也会为新元素应用样式。但是如果您愿意,您可以将css样式表附加到
complete
事件处理程序的头部。您不需要在请求完成后加载样式s、 一旦加载css,它也会为新元素应用样式。但是如果需要,您可以将css样式表附加到complete
事件处理程序中的头部。在代码中,您只需再次加载您已有的样式。如果新HTML内容具有新的css样式(即,它们既不在Default.css
中,也不在all.css
中),您需要将它们放入新的样式表或新的内联
元素中,并将其添加到文档中。在代码中,您只需重新加载已有的样式。如果新的HTML内容具有新的css样式(即,它们既不在Default.css
中,也不在all.css
中),您需要将它们放在新的样式表或新的内联
元素中,并将其添加到文档中。是的,您是对的。我发现问题在于我得到的包含html的内容字符串中,在样式类名称之前,有“+”(加号)这是因为在用于发送内容的C#代码中,我使用了“Server.UrlEncode(string)”,这将导致“+”问题。我发现解决方案是:在C#代码中,我使用“Microsoft.JScript.GlobalObject.encodeURIComponent(string)”来编码html内容,在客户端js代码中,我使用“decodeURIComponent”“解码。如此完美的方式,现在就可以了。非常感谢你!我很高兴能够提供帮助,这没有问题是的,你是对的。我发现问题在于我得到的包含html的内容字符串中,在样式类名称之前,有“+”(加上)。这是因为在发送内容的C#代码中,我使用了“Server.UrlEncode(string)”,这将导致“+”我发现解决方案是这样的:在c代码中,我使用“Microsoft.JScript.GlobalObject.encodeURIComponent(string)”来编码html内容,在客户端js代码中,我使用“decode uricomponent”解码。如此完美的方式,现在就可以了。非常感谢你!我很高兴我能够帮助你,这没有问题。谢谢你,我找到了解决方案,我发现了一些有趣的事情,你可以通过看到第一个答案的评论来得到它!你近7年的答案帮助了你,泰。谢谢你,我找到了解决方案,我发现了一些有趣的事情,你可以得到它看到第一个答案的评论!你将近7年的答案很有帮助,泰。