vue-script-inject
依赖vue
实现脚本注入(采用jsx
来渲染节点),有时候需要在代码中插入一些script
或者其他节点, 用于生成广告或者统计
Installation
npm i vue-script-inject --save
yarn add vue-script-inject
Initialize
-
在用vue-cli
创建的项目中,在main.js
文件中添加插件
import VueScriptInject from "vue-script-inject";
Vue.use(VueScriptInject, {
testScript: function (h, adData) {
return <script>console.log(1111111)</script>;
},
testScript1: function(h, adData) {
return <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js" onLoad={() => console.log($)}></script>
},
testScript2: function (h, adData) {
return (
<script src={"http://test.com/test?id=" + adData.id}></script>
);
}
});
-
在用 cdn 方式或者本地引入vuejs
项目中使用
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="./build/script-inject.iife.min.js"></script>
<script>
Vue.use(vueScriptInject, {
testScript: function (h, adData) {
return h('script', {
on: {
load: function () {
console.log($)
}
},
domProps: {
src: 'https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js'
}
})
},
testScript1: function (h, adData) {
return h('script', "console.log(111111111)")
},
testScript2: function (h, adData) {
return h('script', {
domProps: {
type: 'text/javascript',
src: '//i.hao61.net/d.js?cid=' + adData.id
}
})
}
})
var app = new Vue({
el: '#app'
})
</script>
Usage
在需要的地方写上指令就可以了
<div v-inject:testScript></div>
<div v-inject:testScript1></div>
<div v-inject:testScript2="{id: 31728}"></div>