Socket
Socket
Sign inDemoInstall

vue-script-inject

Package Overview
Dependencies
11
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-script-inject

一个vue注入script脚本的插件


Version published
Maintainers
1
Install size
11.5 MB
Created

Readme

Source

vue-script-inject

依赖vue实现脚本注入(采用jsx来渲染节点),有时候需要在代码中插入一些script或者其他节点, 用于生成广告或者统计

Installation

npm i vue-script-inject --save
# or
yarn add vue-script-inject

Initialize

  • 在用vue-cli创建的项目中,在main.js文件中添加插件

    import VueScriptInject from "vue-script-inject";
    
    Vue.use(VueScriptInject, {
    	testScript: function (h, adData) {
    		// h(createElement)参数不可缺失 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>
    <!--  可从node_modules中拷贝出来  -->
    <script src="./build/script-inject.iife.min.js"></script>
    <script>
        Vue.use(vueScriptInject, {
            testScript: function (h, adData) { // 注意: h(createElement)参数不可缺失 adData是节点中所传递的数据
                return h('script', {
                    on: {
                        load: function () {
                            // to do something
                            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>

Keywords

FAQs

Last updated on 25 Nov 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc