babel通過script標簽引入無法解決低版本的ie兼容es6的問題(非解決方案,談下遇到的坑)


最近看到了es6的模板字符串,感覺使用起來太爽了,沒有了字符串拼接,代碼看起來也沒那么難看了。

結果放到ie上邊跑,不支持es6的寫法,於是網上扒解決方案(我寫的項目是很傳統的項目,前后端不分離,沒有用前端流行的腳手架之類的東西),結果發現大部分解決方案都不適用於我的傳統項目。

看到有人說用babel,可以通過script標簽引入的方式解決es6的問題,試了試,結果一堆坑,根本沒法用。

問題一:如果是引入的js文件,谷歌就會報一個跨域的問題,ie是拒絕訪問,edge竟然能跑。(下邊的browser.js是使用npm下載的babel文件中的)

下邊代碼中使用src引入一個js文件

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="browser.js"></script>
	<script type="text/babel" src="test1.js"></script>
</head>
	<body>
		
	</body>

</html>

 報錯信息:

谷歌報錯:

 

 ie報錯:

 

問題二:

由於babel要求script標簽設置為text/babel ,結果其執行時間總是很晚,要晚於text/javascript這種的script標簽。

實際需求中往往需要一些默認的script標簽在它之后運行才可以正常運行。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="browser.js"></script>
	<script type="text/babel">
		console.log('我是babel');
	</script>
	<script type="text/javascript">
		console.log('我是正常的script標簽');
	</script>
</head>
	<body>
		
	</body>
</html>

  執行結果:

 

經過測試,如果要使用這種方式,如果能忍受我上邊說的問題也可以,下邊這樣寫ie的確能夠解決es6的。注意script標簽的type一定要是 text/babel。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="browser.js"></script>

	<script type="text/babel">
		let html = `fdsafdsaf`;
		console.log(html);
	</script>
</head>
	<body>
		
	</body>
</html>

  

 

基於以上原因,這種引入方式實在沒法使用,可能是自己的打開方式不對?除了babel還試了個叫 polyfill.io的 , 一點反應都沒有。。。。,網上很多人發的用script引入它標簽就能解決es6低版本瀏覽器的問題,

我試了下,行不通。

如果哪位朋友解決了這個問題,如果方便給份例子,感激不盡!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM