【发布时间】:2020-04-06 15:15:20
【问题描述】:
我正在尝试构建一个基于 Web 的代码编辑器,并将 javascript 加载到 textarea 值中,我很偶然地发现该页面正在评估代码。
var url = 'local.js';
var timestamp = new Date().getUTCMilliseconds();
$.get(url, {r:timestamp}, function(data) {
$("#scriptview").val(data);
$("#editor").slideDown();
});
如何防止 GET 请求评估代码?我直接从本地文件获取源代码。
更新: 更改代码以添加 dataType 解决了这个问题。我无法正确使用 $.get 语法糖,所以我使用的是 $.ajax
var url = 'local.js';
var timestamp = new Date().getUTCMilliseconds();
$.ajax({url:url, data: {r:timestamp}, success: function(data) {
$("#scriptview").val(data);
$("#editor").slideDown();
return false;
}, dataType: "text"});
我仍然不明白为什么被调用文件中的代码被执行,我没有在脚本标签或任何内容中附加到正文。
【问题讨论】:
-
@freedomn-m 让它成为答案
-
等一下,
$.get()究竟会如何隐式评估 JavaScript? -
我和@Pointy 在一起我不认为这段代码是罪魁祸首。您正在使用正在评估它的 textarea 值执行其他操作。您是否将其放入
.html()中? -
添加
alert("local.js")作为页面的第一行。您可能无意中加载了它(例如通过捆绑包)
标签: javascript jquery get execution evaluation