动态加载范围库

发布于 2024-12-05 13:38:38 字数 1017 浏览 0 评论 0原文

正如此处建议< /a> 并在此处举例说明, rangy 库可用于突出显示选定的文本。

我无法直接访问该页面,我想突出显示一些文本,因此我尝试动态加载它:

var HLScripts=new Array(
'lib/log4javascript.js',
'src/js/core/core.js',
'src/js/core/dom.js',
'src/js/core/domrange.js',
'src/js/core/wrappedrange.js',
'src/js/core/wrappedselection.js',
'src/js/modules/rangy-serializer.js',
'src/js/modules/rangy-cssclassapplier.js',
'src/js/modules/rangy-selectionsaverestore.js',
'src/js/modules/rangy-highlighter.js'
)

for(var i=0; i<HLScripts.length; i++) {
var e=document.createElement('script');
e.type='text/javascript';
e.src='http://rangy.googlecode.com/svn/trunk/'+HLScripts[i];
document.body.appendChild(e);
}

但是,当我调用 init 方法时 rangy.init(); 我得到rangy is undefined。 我该如何纠正这个错误?

As suggested here and exemplified here, rangy library can be used to highlight selected text.

I do not have direct access to the page I want to highlight some text, so I'm trying to load it dynamically:

var HLScripts=new Array(
'lib/log4javascript.js',
'src/js/core/core.js',
'src/js/core/dom.js',
'src/js/core/domrange.js',
'src/js/core/wrappedrange.js',
'src/js/core/wrappedselection.js',
'src/js/modules/rangy-serializer.js',
'src/js/modules/rangy-cssclassapplier.js',
'src/js/modules/rangy-selectionsaverestore.js',
'src/js/modules/rangy-highlighter.js'
)

for(var i=0; i<HLScripts.length; i++) {
var e=document.createElement('script');
e.type='text/javascript';
e.src='http://rangy.googlecode.com/svn/trunk/'+HLScripts[i];
document.body.appendChild(e);
}

However, when I call the init method
rangy.init();
I obtain rangy is undefined.
How can I correct this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由如风 2024-12-12 13:38:38

首先,我建议下载 Rangy 的发布版本并将其放在您的服务器上,而不是直接链接到 SVN 主干中的文件,这些文件不如正确的版本稳定,并且充满了日志记录调用,这会增加代码大小会损害性能并且需要 log4javascript,而 log4javascript 本身就相当庞大。

其次,像这样动态加载脚本将异步加载它们,这意味着单个脚本可能会在它所依赖的先前脚本完成加载之前完成加载并执行。脚本加载和正确获取依赖项是一个有点棘手的领域。我不是这个领域的专家,但就其价值而言,我建议使用脚本加载器,例如 LABjs去做它。

First, I'd recommend downloading a release build of Rangy and putting that on your server rather than linking directly to the files in the SVN trunk, which are not as stable as a proper release and are full of logging calls, which increase code size and harm performance and require log4javascript, which is itself fairly bulky.

Second, loading scripts dynamically like that will load them asynchronously, meaning that an individual script may finish loading and execute before previous scripts upon which it depends have finished loading. Script loading and getting dependencies right is a bit of a tricky area. I'm no expert in this field, but for what it's worth, I'd recommend using a script loader such as LABjs to do it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文