gpt4 book ai didi

html - 脚本标记中 HTML 中的动态 Src

转载 作者:行者123 更新时间:2023-12-02 03:29:33 26 4
gpt4 key购买 nike

我有一个脚本:

<script src="http://192.168.0.187:3004/socket.io/socket.io.js"></script>

IP 地址可能会发生变化,而我无法控制,因此我正在考虑使 IP 动态化。

像这样:

<script src="http://" + location.host + "/socket.io/socket.io.js"></script>

但这当然行不通。

但是我确实遇到了这个:

<script type="text/javascript" src="">
document.getElementsByTagName("script")[0].src += "http://" + location.host + "/socket.io/socket.io.js";
</script>

但是还是不行。这不是我的强项,所以有什么线索吗?

编辑:

这是我的 html 示例:

<!DOCTYPE html>
<html>
<head>
<title>SAMPLE</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script id="script" src=""></script>
<script type="text/javascript">
document.getElementById("script").src = "http://" + location.host + "/socket.io/socket.io.js";
</script>
<link rel="stylesheet" href="/styles.css">
</head>
<body bgcolor="#ffffff">
<table id="table" border=1>
<thead>
<th><center>Sample</center></th>
<th></th>
</thead>
<tbody id="online"></tbody>
</table>
<script>
var ipServer = location.host;
var socket = io.connect('ws://' + ipServer);
</script>
</body>
</html>

最佳答案

这是调用动态加载javascript:

var script = document.createElement('script');
script.setAttribute( 'src', 'socket.io.js');
document.head.appendChild(script);
//script that use socket.io

但是还有一个问题,你不知道脚本何时完全加载。如果在加载之前调用外部脚本中定义的函数,则会出错!

var script = document.createElement('script');
script.onload = function () {
//script that use socket.io
};
script.setAttribute( 'src', 'socket.io.js');
document.head.appendChild(script);

我们可以创建一个实用函数:

function loadScript(scriptPath, callback) {
var script= document.createElement('script');
script.setAttribute('src', scriptPath);
script.onload = callback();
document.head.appendChild(s);
};

loadScript('socket.io.js', function() {
//script that use socket.io
});

或者你可以使用 jQuery $.getScript():

$.getScript('socket.io.js', function(data, textStatus, jqxhr) {
//script that use socket.io
});

了解更多信息:https://api.jquery.com/jquery.getscript/

PS:用你的代码,它会是这样的:

<!DOCTYPE html>
<html>
<head>
<title>SAMPLE</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script id="script" src=""></script>
<!--<script type="text/javascript">-->
<!--document.getElementById("script").src = "https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js";-->
<!--</script>-->
<!--<link rel="stylesheet" href="/styles.css">-->
</head>
<body bgcolor="#ffffff">
<table id="table" border=1>
<thead>
<th><center>Sample</center></th>
<th></th>
</thead>
<tbody id="online"></tbody>
</table>
<script>
var script = document.createElement('script');
script.onload = function () {
var ipServer = location.host;
var socket = io.connect('ws://' + ipServer);
};
script.setAttribute( 'src', 'https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js');
document.head.appendChild(script);
</script>
</body>
</html>

关于html - 脚本标记中 HTML 中的动态 Src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com