const scriptElement = document.createElement('script'); // // 将接口返回的代码作为 script 元素的 innerHTML 属性值 scriptElement.innerHTML = this.$store.state.WebSiteData.js; document.head.appendChild(scriptElement);报错VM84823:1 Uncaught SyntaxError: Unexpected token '<' at VueComponent.eval (index.vue:210:1) at Array.eval (vue.runtime.esm.js:3143:1) at flushCallbacks (vue.runtime.esm.js:3065:1)
时间: 2024-03-19 11:41:59 浏览: 20
这个错误提示意思是在执行 JavaScript 代码时遇到了意外的字符 '<',可能是因为你将一个非 JavaScript 代码(例如 HTML 或 XML)放入了 script 标签中。请检查你的代码,确保你在 script 标签中放入的是有效的 JavaScript 代码,而不是其他类型的代码。你可以尝试将接口返回的代码先保存到一个 js 文件中,然后再使用 script 标签引入这个 js 文件。
相关问题
vue 后端接口返回了两个script标签代码,怎么在当前vue文件里执行
如果后端接口返回的两个 `<script>` 标签代码需要在 Vue 组件中执行,可以通过以下方式实现:
1. 将返回的两个 `<script>` 标签代码保存到一个字符串变量中,例如 `response`。
2. 使用 `document.createElement('script')` 方法创建一个 `<script>` 标签元素。
3. 将 `response` 中的第一个 `<script>` 标签代码赋值给新创建的 `<script>` 标签元素的 `innerHTML` 属性。
4. 将新创建的 `<script>` 标签元素添加到当前 Vue 组件的 `<head>` 标签中。
5. 重复步骤 2-4,将 `response` 中的第二个 `<script>` 标签代码执行。
以下是代码示例:
```
export default {
mounted() {
axios.get('/api/getScriptTags').then(response => {
const scripts = response.data.split('</script>')
const script1 = scripts[0].replace('<script>', '')
const script2 = scripts[1].replace('<script>', '')
const head = document.getElementsByTagName('head')[0]
const scriptElement1 = document.createElement('script')
scriptElement1.innerHTML = script1
head.appendChild(scriptElement1)
const scriptElement2 = document.createElement('script')
scriptElement2.innerHTML = script2
head.appendChild(scriptElement2)
})
}
}
```
这样就可以在 Vue 组件中执行后端接口返回的两个 `<script>` 标签代码了。
vue 后端接口返回了字符串script标签代码,怎么在当前vue文件里执行
如果后端接口返回的是一个包含 `<script>` 标签代码的字符串,可以通过以下方式实现:
1. 创建一个新的 `<script>` 标签元素。
2. 将后端接口返回的字符串赋值给新创建的 `<script>` 标签元素的 `innerHTML` 属性。
3. 将新创建的 `<script>` 标签元素添加到当前 Vue 组件的 `<head>` 标签中。
以下是代码示例:
```
export default {
mounted() {
axios.get('/api/getScriptTag').then(response => {
const head = document.getElementsByTagName('head')[0]
const scriptElement = document.createElement('script')
scriptElement.innerHTML = response.data
head.appendChild(scriptElement)
})
}
}
```
这样就可以在 Vue 组件中执行后端接口返回的 `<script>` 标签代码了。注意,如果 `<script>` 标签代码中包含外部资源的引用,需要保证这些资源是可以被访问到的,否则会导致执行失败。