我不确定这是否是正确的方法,或者是否是一个“好”的问题,但我正在作为插件风格架构的一部分加载一个Javascript,并且我有以下问题:
如果特定节点引用了一个插件,我想按照提供的JSON描述中的URL加载该插件。 描述将具有类似于以下内容(或功能等效):
{
"pluginSrc" : "http://mysite.com/plugins/1204.js",
"configData" :
{
"someData", "someValue",
"someMoreData", "etc"
}
}
当javascript加载时,我会有一个onload处理程序,检查窗口对象上是否存在函数名称,如果存在,就会创建该函数的新实例并传递配置数据(或多或少),这部分非常好用,但也有一些例外情况。
有时我没有需要调用的函数名称的引用,并且无法从json中获取它。理想情况下,如果我可以告诉在脚本的onload回调上添加了哪个函数并创建该函数的实例,那将是最理想的。这可行吗?我只需要担心现代浏览器,特别是webkit。如果问题不清楚,很抱歉,我很乐意澄清,但是要编写大量代码以达到最小示例可能会很困难。
到目前为止,我考虑的是在加载的脚本文件中创建某种全局变量,例如:
function MediaAnalytics(){};
var LoadedClass = MediaAnalytics;
当脚本被加载时,只需创建LoadedClass的实例即可,但这还不够完美,因为我不会总是编写插件。
编辑:这些脚本很可能不来自同一个域。
window
复制函数到主window
中会怎么样?(我不知道那是否可行,只是提出来供参考) - gen_Eric