gpt4 book ai didi

javascript - 将语法错误附加到 HTML 元素

转载 作者:行者123 更新时间:2023-12-03 12:12:36 25 4
gpt4 key购买 nike

我正在使用 YQL 和 jQuery.ajax 从另一个网站检索内联 JavaScript 变量。该变量包含一个完整的base64编码的XML文档。

虽然 AJAX 请求正在运行,但我不知道如何获取 res.query.results并将其附加到动态创建的 <script>元素。

这是 jQuery:

$.ajax({
url: "http://query.yahooapis.com/v1/public/yql/dj/fsp?format=json",
type: "GET",
success: function(res) {
var sc = $('script');
$(sc).append(document.createTextNode('var '+$(res.query.results)));
$('head').append(sc);
}
});

这是控制台日志告诉我的内容:

enter image description here

任何想法或建议将不胜感激。谢谢大家!

最佳答案

三件事:

  1. 创建脚本元素,您需要$('<script>') ,不是$('script') 。后者搜索所有 script元素。

  2. 不需要createTextNode ,jQuery 将为您处理这个问题。

  3. 您调用$()做得太过分了。 :

          var sc = $('<script>');
    sc.append(document.createTextNode('var '+res.query.results));
    // ^ #1 (see below) ^ #2
    1. 你不想做$(sc)再说一遍,这是没有意义的,它已经是一个 jQuery 实例了。

    2. 您不想解析 res.query.results在 jQuery 实例中,您希望将字符串抓取到 JavaScript 变量中(显然)。

Live example :

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<script>
(function() {
"use strict";

display("Doing query...");
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql/dj/fsp?format=json",
type: "GET",
success: function(res) {
display("Got result, creating <code>script</code>...");
var sc = $('<script>');
sc.append('var '+res.query.results);
$('head').append(sc);
display("length of <code>txt</code> global variable: " + window.txt.length);
}
});

function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
</script>
</body>
</html>

关于javascript - 将语法错误附加到 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24890548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com