使用Prototype动态加载CSS和JavaScript

时间:2010-05-14 07:40:38

标签: javascript asp-classic prototypejs

我有一个经典的ASP应用程序,我一直在尝试模块化。目前,几乎所有页面都分为两页:

  • 包含布局,标题,侧边栏,页脚
  • 的外部页面
  • 包含ASP代码的内部页面

外部页面使用Dreamweaver模板,因此更新布局和复制更改很容易。内页由我管理。现在问题在于:

我必须在一个页面上添加一个灯箱,我选择了需要Prototype的Lightbox 2。我最终在每个页面上都添加了Prototype,假设我迟早会升级所有页面,表单,ajax请求和其他javascript来使用Prototype。我现在已经添加了另外两个插件--Modalbox和Protofade;每个都有一对.JS和.CSS文件。由于我将在特定的页面集上使用这三个插件,我想知道我是否可以动态加载所需的CSS和JS文件。我不想访问文档头并在那里添加包含文件(即通过使用大约<head><script>标记膨胀<link>标记,我将不得不这样做从DIV里面,所有的ASP代码都应该去。

1 个答案:

答案 0 :(得分:1)

您可以通过向文档添加script元素来动态添加脚本;来自Unofficial Prototype&amp;的this page的详细信息和示例代码script.aculo.us wiki。 E.g:

var element;
var script;

element = /* ...grab the element you want to add to; I'd use $$('head')[0] */;
if (element) {
    script = new Element('script', { type: 'text/javascript', src: 'dynamic.js' });
    element.appendChild(script);
}

添加样式表链接应该基本相同。虽然该页面已添加到head,但您已经说过您不想这样做(虽然我不清楚为什么不这样做,因为您在用户的计算机上动态执行此操作),但是无论你在哪里添加它们,它都应该仍然有用。