在 html 页面上动态添加到脚本 src 的路由

Posted

技术标签:

【中文标题】在 html 页面上动态添加到脚本 src 的路由【英文标题】:dynamically add route to script src on an html page 【发布时间】:2017-06-17 21:59:05 【问题描述】:

我想。 例如,

<script src="../../../library/vendor/jquery/jquery-3.1.1.min.js"></script>

当我使用 Web 服务器并加载此代码时,无法正常工作。也许它应该放置网络服务器 url 前缀。所以我想在下面更改。

<script src="mySite/../../../library/vendor/jquery/jquery-3.1.1.min.js"></script>

或者, 根相对路径设置的其他内容?

【问题讨论】:

【参考方案1】:

这不能仅通过 htmljavascript 来实现。您至少需要一个能够在将 html 发送到浏览器之前“渲染”您的 html 并替换“mySite”的框架。

JSF 2.x 中的示例如下所示:

<link href="#request.contextPath/css/style.css" rel="stylesheet" type="text/css"/>

或百里香叶:

<a th:href="@/order/list">

如果您想开发例如一个单页网站,其中内容由 ajax 动态替换,那么您至少需要一个由该框架之一动态创建的页面。

【讨论】:

【参考方案2】:

使用下面的 JavaScript 代码:

    var scr = document.createElement('script');
    var myurl = 'http://example.com/myjavascript.js'
    scr.setAttribute('src',myurl);

    document.head.appendChild(scr);

或者你可以创建一个这样的函数:

function addMyScript(url) 
  var scr = document.createElement('script');
  scr.setAttribute('src', url);
  document.head.appendChild(src);

您可以动态决定您的网址并通过将其作为参数传递来调用该函数:

addMyScript('http://example.com/myjavascript.js');

【讨论】:

哦,我没想到。好的,您必须从您呈现的第一个 html 开头的某个地方获取“myUrl”。

以上是关于在 html 页面上动态添加到脚本 src 的路由的主要内容,如果未能解决你的问题,请参考以下文章

动态脚本

如何在html页面动态加载js文件

从包含 Div 和脚本标记的 html 编码字符串中动态添加 div 元素

在 Angular 中根据路由动态添加元描述

Vue实现动态路由

用原生js怎么动态添加一个js文件