首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:加载脚本,但作为<pre><code>块?

问jQuery:加载脚本,但作为<pre><code>块?
EN

Stack Overflow用户
提问于 2010-07-23 17:35:54
回答 2查看 1.2K关注 0票数 1

我想加载代码并将其显示在代码标记中(用于语法突出显示等)。如下所示:

<pre><code>alert("javascript loaded");</code></pre>

我现在正在用jQuery做这件事:

代码语言:javascript
复制
$.ajax({
  url: "/local/path.js",
  success: function(data) {
    alert("success");
    var code = $("<pre><code>" + data + "</code></pre>");
    $("body").append(code);
  }
})

...where "/local/path.js"是一些代码片段,我们希望将其显示为博客文章的一部分,但不希望它执行:

代码语言:javascript
复制
# /local/path.js (or /local/path.programming-language-ext)
alert("javascript loaded");

问题是,在调用alert("success");之前,就已经调用了alert("javascript loaded");。这不应该被执行,我只想加载一个原始字符串。也就是说,我不希望jQuery对响应进行任何类型的处理。我该怎么做?这一切都是在没有任何服务器端语言的情况下完成的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-23 17:47:13

不知何故,出于某种原因,jQuery正在执行响应...

看起来很奇怪,你有没有尝试过在code变量中只使用字符串?

代码语言:javascript
复制
var code = "<pre><code>" + data + "</code></pre>";
$("body").append(code);

也许可以尝试添加dataType

代码语言:javascript
复制
$.ajax({
  url: "/local/path.js",
  dataType: 'text',
  success: function(data) {
    alert("success");
    var code = $("<pre><code>" + data + "</code></pre>");
    $("body").append(code);
  }
})
票数 0
EN

Stack Overflow用户

发布于 2010-07-23 18:02:18

jQuery将

...根据响应的MIME类型智能地尝试获取结果( XML类型将生成XML,在1.4JSON中将生成JavaScript对象,在1.4JSON中脚本将执行脚本,其他任何内容都将作为字符串返回)。

(来自http://api.jquery.com/jQuery.ajax/,dataType部分。另请参阅"Data Types")

因此:

代码语言:javascript
复制
$.ajax({
  url: "/local/path.js",
  ...
  dataType: 'text'
});

或者,您应该能够配置您的服务器以text/plain格式发送/local/中的文件,但这可能不是可行的方法。至少,我更喜欢在使用时显式使用,即在我需要的地方指定类型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3316981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档