0

キャッシュを避けるために、タグ url の JavaScript ファイルにタイムスタンプを追加する必要があります。

ここでスタックオーバーフローにあるこの関数は、それを行うようです:

<script type="text/javascript">
(function(){ 
 var randomh=Math.random();
 var e = document.getElementsByTagName("script")[0];
 var d = document.createElement("script");
 d.src = "TESTINGX.JS?x="+randomh+"";
 d.type = "text/javascript"; 
 d.async = true;
 d.defer = true;
 e.parentNode.insertBefore(d,e);

})();

しかし、問題は、ファイル testingx.js 内に次のコードを配置したことです。

var hello = "Hello World!";

そして、何らかの理由で、変数がグローバルスコープを取得していません (または、問題が他にある可能性があります)。

私のhtmlは次のとおりです。

<!DOCTYPE html>
<HTML><HEAD>

<script type="text/javascript">
(function(){ 
     var randomh=Math.random();
     var e = document.getElementsByTagName("script")[0];
     var d = document.createElement("script");
     d.src = "TESTINGX.JS?x="+randomh+"";
     d.type = "text/javascript"; 
     d.async = true;
     d.defer = true;
     e.parentNode.insertBefore(d,e);
 })();
</script>

</HEAD><BODY>

<h1>WiFi Mini Web Server</h1>

<script>
document.write(hello); //hello var is contained in the TESTINGX.JS file\n\
</script>
</BODY></HTML>
4

3 に答える 3

1

これを試して

    <script type="text/javascript">
(function(){ 
     var randomh=Math.random();
     var e = document.getElementsByTagName("script")[0];
     var d = document.createElement("script");
     d.src = "TESTINGX.JS?x="+randomh+"";
     d.type = "text/javascript"; 
     d.async = true;
     d.defer = true;
     e.parentNode.insertBefore(d,e);
document.write(hello);
 })();
</script>
于 2013-04-20T17:04:03.793 に答える