如果您没有 index.html,如何在 index.html 中运行脚本以做出反应

Posted

技术标签:

【中文标题】如果您没有 index.html,如何在 index.html 中运行脚本以做出反应【英文标题】:How to run scripts in index.html in react if you don't have index.html 【发布时间】:2022-01-08 19:09:05 【问题描述】:

对不起,我对 React 还是新手。 我有需要添加几个 scrypts 的 React web App。 Althogh scrypts 必须在 index.html 的 body 标记内。 像这样:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>React example</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style media="only screen">
      html,
      body,
      #root 
        height: 100%;
        width: 100%;
      
    </style>
  </head>
  <body>
    <div id="root">Loading React example&hellip;</div>
      <script 
        src="https://unpkg.com/systemjs@0.19.39/dist/system.src.js"
       > 
       </script>
      <script src="systemjs.config.js"></script>
      <script>
        System.import('./index.jsx').catch(function(err) 
          console.error(err);
        );
      </script>
  </body>
</html>

但问题是我的应用没有index.html,它只有index.js。 我试图用document.write 添加这个scrypt,但我认为这是一种错误的做法。 除此之外,我还有无法理解的语义和句法错误,它们也附在here

【问题讨论】:

【参考方案1】:

您可以在您的反应代码中附加脚本:

let script = document.createElement("script");
script.setAttribute("src", scriptUrl);
script.setAttribute("type", "text/javascript");

(这适用于链接脚本,但嵌入脚本可以以类似的方式完成)

【讨论】:

嗨@Judith 谢谢你的回答。您能否告诉我是否使用嵌入式 scrypts 我应该将源代码传递给这样的 script.setAttribute("src", sourceCodeOfScrypt);用“src”? 应该是script.innerHTML = 'source as string'

以上是关于如果您没有 index.html,如何在 index.html 中运行脚本以做出反应的主要内容,如果未能解决你的问题,请参考以下文章

如何通过htaccess设置默认网站页面?

如何从 index.html 自定义元素标签接收数组作为@Input?

从 localhost 打开 file:///path/index.html

如何通过 django html 按钮执行 python 代码?

您如何使托管在 S3 上的静态站点的 index.html 缓存失效?

Spring 捕获 index.html 的所有路由