产品提了一个新需求,需要每个h5页面都具有分享功能,因为在每一个h5页面中都已经引入了一个公用的文件(该文件的主要作用就是引入一个公用的css和js库),所以,为了实现分享的功能,在该公用的文件中加入了分享功能的代码。
common.js
<link rel="stylesheet" type="text/css" href="..." />
...
<script type="text/javascript" src="..."></script>
...
<script>
// 分享功能代码
</script>
在每个h5文件的头部引入了common.js。
在分享功能的代码中使用了location.href = 'jsbrigde:'
的代码,然后发现在该文件后的js代码无法执行。
形如以下例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
location.href = "jsbridge:";
</script>
<script>
console.log(1);
</script>
</html>
运行代码后,在控制台中无法输出1。
经过不断的尝试,发现有两种方法可以正常输出1:
第一种,将两个代码片段放到一个script下,如:
<script>
location.href = "jsbridge:";
console.log(1);
</script>
第二种,将location.href = "jsbridge:";
放到文件的最后,如:
<script>
console.log(1);
</script>
<script>
location.href = "jsbridge:";
</script>
不了解JSBridge,所以对于出现这种问题的原因还不知道。
在使用的时候需要注意。