【问题标题】:Dynamic javascript injection without createElement没有 createElement 的动态 javascript 注入
【发布时间】:2010-06-28 05:34:18
【问题描述】:

在 Google Gears API 的“线程”上下文中运行代码时,您无法访问“文档”对象,因此不能使用 createElement 来动态加载脚本。

有没有人对我在这种情况下如何“注入”代码有任何想法?我能想到的唯一方法是使用 Web 服务和 JSON 对象,然后我会对其进行评估,但这会产生自己的一系列问题和复杂性,并在我的嘴里留下不好的味道。

问题是由于这个限制,我最终会得到大量的单片代码和各种重复的代码,没有什么比我更讨厌的了。

有什么想法吗?

【问题讨论】:

    标签: javascript multithreading google-gears


    【解决方案1】:

    无需使用网络服务,只需使用普通 XMLHttpRequest 检索 javascript 文件,然后对其进行 eval。

    var xhr = new XMLHttpRequest();
    xhr.open("foo.js", null, false); // since this is in a thread you can use the synchronous approach
    xhr.send("");
    eval(xhr.responseText);
    

    【讨论】:

    • 顺便说一句,如果你想在全局范围内评估代码,请执行此操作var fn = new Function(xhr.responseText);fn();
    猜你喜欢
    • 2019-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    相关资源
    最近更新 更多