

大変お世話になっております。以下の様なhtmlファイルがあり、下部にある記述でurlから取得したp_idの値の内容（例：1、か2）によって、その上にあるinclud1.js、かinclud2.jsを条件分岐させたいのですが、具体的にどのような記述にすればよろしいかお教え願いませんでしょうか。

[code]

    <!doctype html>
    <html>
    <body>
    
    <script type="text/javascript" src="includ1.js"></script>
    
    <script type="text/javascript" src="includ2.js"></script>
    
    
    <script type="text/javascript"> 
    const url = new URL(location.href);
    const p_id = url.searchParams.get("p_id");
    </script>
    
    <script type="text/javascript"> 
      document.addEventListener('DOMContentLoaded', function() {
      document.getElementById('p_id ').value = p_id;   
    });
    </script>
    
    
    </body>
    </html>
    
[/code]

＊ご教授により試した記述

[code]

    <!doctype html>
    <html>
    <body>
    
    <script type="text/javascript"> 
    const url = new URL(location.href);
    const p_id = url.searchParams.get("p_id");
    
    const script = document.createElement('script');
    if (p_id == 1) {
      script.src = 'includ1.js';
    } else {
      script.src = 'includ2.js';
    }
    document.body.appendChild(script);
    </script>
    
    <script type="text/javascript"> 
      document.addEventListener('DOMContentLoaded', function() {
      document.getElementById('p_id ').value = p_id;   
    });
    </script>
    
    </body>
    </html>
    
[/code]


CC BY-SA 4.0
2019-11-14T21:35:52.600
60525
2019-11-16T02:19:08.310
2019-11-16T02:19:08.310
19211
19211
question
javascript html
htmlファイルでurlの内容によって条件分岐


動的に`script`要素を挿入すれば可能です。

[code]

    <!DOCTYPE html>
    <html>
    <body>
    
    <script type="text/javascript"> 
    const url = new URL(location.href);
    const p_id = url.searchParams.get("p_id");
    
    const script = document.createElement('script');
    if (p_idに関する条件) {
      script.src = 'includ1.js';
    } else {
      script.src = 'includ2.js';
    }
    document.body.appendChild(script);
    </script>
    
    </body>
    </html>
    
[/code]

挿入したスクリプトが非同期に実行されますが、それが困る場合は`script`要素の`load`イベントを待って対処します。


CC BY-SA 4.0
2019-11-15T06:30:36.567
60540
2019-11-15T06:30:36.567
3475
60525
answer