Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何有条件地停止加载React应用程序';在不受支持的浏览器上运行脚本?_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 如何有条件地停止加载React应用程序';在不受支持的浏览器上运行脚本?

Javascript 如何有条件地停止加载React应用程序';在不受支持的浏览器上运行脚本?,javascript,html,reactjs,Javascript,Html,Reactjs,因此,我的项目正在使用createreact应用程序,带有reactmain.js的加载在的底部。加载时,它会在不受支持的浏览器上崩溃 我在main.js上面的中有一个块,它检查您的浏览器,有条件地不呈现,而是调用操作来更新您的浏览器。当显示对操作的调用时,我在最后有一个窗口。stop(),因此浏览器不会加载react脚本。不幸的是,图像也无法调低 有没有办法停止加载React js?或者是一种将图像预加载到中的方法 示例结构: <body> <script>

因此,我的项目正在使用createreact应用程序,带有react
main.js的
加载在
的底部。加载时,它会在不受支持的浏览器上崩溃

我在
main.js
上面的
中有一个块,它检查您的浏览器,有条件地不呈现
,而是调用操作来更新您的浏览器。当显示对操作的调用时,我在最后有一个
窗口。stop()
,因此浏览器不会加载react脚本。不幸的是,图像也无法调低

有没有办法停止加载React js?或者是一种将图像预加载到中的方法

示例结构:

<body>
  <script>
     Script 1 here, checking browser version and using `document.write()` if 
     unsupported
  </script>
  <script>
    React script here, which shouldn't run/be imported if the above script 
    found an unsupported browser.
  </script>
</body>

此处为脚本1,检查浏览器版本并使用`document.write()`if
无支撑
此处的React脚本,如果上面的脚本
找到一个不受支持的浏览器。

因此解决方案简单得多,我没有在
index.html
中生成替代的“Browser not supported”html,而是在发现不支持的浏览器时设置重定向到另一个html文件。这样,我就不必使用
document.write
生成标记,从而省去了多行字符串的麻烦。所有内容都正确加载,没有导入react脚本,无需弹出任何内容,页面更易于自定义,css更易于应用,
window.location.replace()禁用了
back
。感觉很好。

你的方法已经很好了。实际上,您可以呈现一个div元素,并将其覆盖在所有内容之上,这样您的用户就看不到其余被破坏的页面了。但是,如果你想拥有一个未损坏的页面,你需要弹出你的项目并修改你的网页包配置,这样它就不会将
main.js
附加到你的项目中。然后,您可以自己附加该脚本,并仅在支持浏览器时加载该脚本。您不应在第一个脚本中检查浏览器兼容性,而应在浏览器兼容的情况下仅加载第二个脚本,这可以通过使用JS向页面动态添加脚本标记来实现。React脚本是在构建时添加的,正如
lumio
所述,我需要弹出应用程序来更改它,这对于这个项目来说不是一个选项。过早地按enter键,然后花了5分钟以上的时间编辑注释,所以我实际上无法编辑它。由于缺少div#root,因此有一些未定义的值,因此无论第一个脚本尝试渲染什么,都不会显示。我将尝试添加回退,看看脚本2是否只是默默地失败了。如果失败,另一个选择可能是重定向到一个完全没有React脚本的单独页面,然后我可以让它平静地加载所有内容。稍后我将发布结果。脚本是什么样子的,您使用webpack部署了它吗?@adam gerthel该项目是使用create react应用程序启动的,脚本位于
/public/index.html
,在构建时它会被更改并添加到
/build
文件夹中。脚本太长,无法发表评论,因此这里有一个粘贴箱,大约一周后过期,不确定是否有更好的方法将其包含在此处: