我想加载代码并将其显示在代码标记中(用于语法突出显示等)。如下所示:
<pre><code>alert("javascript loaded");</code></pre>
我现在正在用jQuery做这件事:
$.ajax({
url: "/local/path.js",
success: function(data) {
alert("success");
var code = $("<pre><code>" + data + "</code></pre>");
$("body").append(code);
}
})...where "/local/path.js"是一些代码片段,我们希望将其显示为博客文章的一部分,但不希望它执行:
# /local/path.js (or /local/path.programming-language-ext)
alert("javascript loaded");问题是,在调用alert("success");之前,就已经调用了alert("javascript loaded");。这不应该被执行,我只想加载一个原始字符串。也就是说,我不希望jQuery对响应进行任何类型的处理。我该怎么做?这一切都是在没有任何服务器端语言的情况下完成的。
发布于 2010-07-23 17:47:13
不知何故,出于某种原因,jQuery正在执行响应...
看起来很奇怪,你有没有尝试过在code变量中只使用字符串?
var code = "<pre><code>" + data + "</code></pre>";
$("body").append(code);也许可以尝试添加dataType
$.ajax({
url: "/local/path.js",
dataType: 'text',
success: function(data) {
alert("success");
var code = $("<pre><code>" + data + "</code></pre>");
$("body").append(code);
}
})发布于 2010-07-23 18:02:18
jQuery将
...根据响应的MIME类型智能地尝试获取结果( XML类型将生成XML,在1.4JSON中将生成JavaScript对象,在1.4JSON中脚本将执行脚本,其他任何内容都将作为字符串返回)。
(来自http://api.jquery.com/jQuery.ajax/,dataType部分。另请参阅"Data Types")
因此:
$.ajax({
url: "/local/path.js",
...
dataType: 'text'
});或者,您应该能够配置您的服务器以text/plain格式发送/local/中的文件,但这可能不是可行的方法。至少,我更喜欢在使用时显式使用,即在我需要的地方指定类型。
https://stackoverflow.com/questions/3316981
复制相似问题