config.js配置页面中的样式和图片路径

这个文章用在什么地方,我先说一下,上周啊,我接到一个任务。因为公司业务要对接不同的银行,例如在工行下颜色是红色的,在其他银行下默认为蓝色,所以在页面一致的情况下,保证页面中的按钮和ICON是可以配置的,这样秩序改动一个值【颜色或路径】,就能正常全部适配好了,其实这个业务很简单:

**第一种方案:我们有新建两个config1.js和config2.js,代码分别类似如下:**
var config = {
    // 改变全局按钮颜色
    btncolor: "red",
    // 配置优惠券和同意的Icon
    img1: "../images/icon_01.png",
    img2: "../images/icon_02.png",
    img3: "../images/icon_03.png"
}

为什么要建两个config.js呢,一个是默认情况下配置信息,一个是定制版本的配置信息。

新建好以后,我们就要把他们引入到页面中去了,怎么引用呢,引用哪一个呢,好纠结啊…

看了这边篇文章,我决定采用document.writeln(),大家可以查一下和document.write()区别在哪里

但是到底引入哪一个config文件呢,我们需要判断它到底是哪一个银行,我们这里假设header里面就是银行的名字,好了,这样就好办了

  • indexOf() 判断字符串首次出现的位置
  • 理清思路,开始撸代码啦
($("header").text().indexOf("工商银行") > -1) ?
            document.writeln("<script src=\"./js/config1.js\"><\/script>")
        :
            document.writeln("<script src=\"./js/config2.js\"><\/script>");

把代码放入页面中就完成任务啦,完整代码如下:

<!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>
    <script src="./js/jquery-2.1.1.min.js"></script>
    <script>
        ($("header").text().indexOf("工商银行") > -1) ?
            document.writeln("<script src=\"./js/config1.js\"><\/script>")
        :
            document.writeln("<script src=\"./js/config2.js\"><\/script>");
    </script>
</head>

<body>
    <header> 工商银行 </header>

    <div>
        <a href="">我是按钮1</a>
        <a href="">我是按钮2</a>
        <a href="">我是按钮3</a>
        <p> 我是按钮4 </p>
        <button> 我是按钮5 </button>
        <img class="img1">
    </div>

    <script>
        $("header").text().indexOf("工商银行") > -1 ?
        document.writeln("我是工行") : document.writeln("我不是工行");

        console.log($("header").text());

        console.log(config);
            var btncolor = config.btncolor;
            console.log(btncolor);
            $("a,p,button").css("color", btncolor);
            var img1 = config.img1;
            console.log(img1);
            $(".img1").attr(‘src‘, img1);

    </script>

</body>

</html>
**第二种方法就是,只有一个文件 config.js**

我们感觉config.js本来配置项就不多,必须在一个文件包含所有的配置项

var config = {
    first: {
        // 改变全局按钮颜色
        btncolor: "yellow",
        // 配置优惠券和同意的Icon
        img1: "../images/icon_01.png",
        img2: "../images/icon_02.png",
        img3: "../images/icon_03.png"
    },
    second: {
        // 改变全局按钮颜色
        btncolor: "red",
        // 配置优惠券和同意的Icon
        img1: "../images/icon_03.png",
        img2: "../images/icon_02.png",
        img3: "../images/icon_01.png"
    }
}

不过这时候方法和上面的基本上是一样的,我就不详细说了,直接代码如下:

<!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>
    <script src="./js/jquery-2.1.1.min.js"></script>
    <script src="./js/config.js"></script>
</head>

<body>
    <header>
        工1商银行
    </header>
    <div>
        <a href="">我是按钮1</a>
        <a href="">我是按钮2</a>
        <a href="">我是按钮3</a>
        <p> 我是按钮4 </p>
        <button> 我是按钮5 </button>
        <img class="img1">
    </div>

    <script>
        $("header").text().indexOf("工商银行") > -1 ?
        document.writeln("我是工行") :
        document.writeln("我不是工行");

        var a = config.first,
            b = config.second,
            c = $("header").text().indexOf("工商银行") > -1;

        console.log($("header").text());

        if (c) {
            console.log(a);
            var btncolor = a.btncolor;
            console.log(btncolor);
            $("a,p,button").css("color", btncolor);
            var img1 = a.img1;
            console.log(img1);
            $(".img1").attr(‘src‘, img1);
        } else {
            console.log(b);
            var btncolor = b.btncolor;
            console.log(btncolor);
            $("a,p,button").css("color", btncolor);
            var img1 = b.img1;
            console.log(img1);
            $(".img1").attr(‘src‘, img1);
        }
    </script>

</body>

</html>

举一反三的情况下:我们可以怎么在react项目中来配置全局颜色呢,直接看代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title></title>
    <script src="https://static.runoob.com/assets/react/react-0.14.7/build/react.min.js"></script>
    <script src="https://static.runoob.com/assets/react/react-0.14.7/build/react-dom.min.js"></script>
    <script src="https://static.runoob.com/assets/react/browser.min.js"></script>
    <script src="./js/config2.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
        var NoLink = React.createClass({

            show: function(dd){
                alert(dd)
            },

            render: function() {
                var o = this;
                var message = [1,5,7,9,0];
                console.log(config);
                var btncolor = config.btncolor;
                var sss = message.map(function(data){
                    return(
                        <input type="button" value={data} onClick={o.show.bind(data,data)} style={{backgroundColor:btncolor}}/>
                )
            })

            return(
                <div> {sss} </div>
                )
            }
        });

        ReactDOM.render(
        <NoLink />,
        document.getElementById(‘example‘)
        )

    </script>
  </body>
</html>
时间: 2024-11-03 03:29:25

config.js配置页面中的样式和图片路径的相关文章

vue-cli3 vue.config.js配置

vue-cli3推崇零配置,其图形化项目管理也很高大上. 但是vue-cli3推崇零配置的话,导致了跟之前vue-cli2的配置方式都不一样了. 别名设置,sourcemap控制,输入文件位置和输出文件位置和输出的方式,压缩js控制,打包webapck日志分析,externals忽略配置(外部引入),调试的端口配置,proxy接口配置等等的. 有时候还需要我们配置的,因为官方推荐的,并不适用于我们平时的开发所用的. 所以,我的vue.config.js配置是下面这样的.还有一个改hash的配置,

@vue/cl构建得项目下,postcss.config.js配置,将px转化成rem

依赖包: postcss-pxtorem 配置: 在项目根目录下创建 postcss.config.js 配置如下: module.exports = () => ({ plugins: [ require('autoprefixer')(), // require('postcss-px2rem')({ remUnit: 75 }) require('postcss-pxtorem')({ rootValue: 37.5, propList: ['*'] }) ]}); rootValue (

vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析

1.下载vue-cli [html] view plain copy npm install vue-cli -g vue-cli的使用与详细介绍,可以到github上获取https://github.com/vuejs/vue-cli 2.安装webpack项目模版 [html] view plain copy vue init <template-name> <project-name> 比如: [html] view plain copy vue init webpack m

vue3.0 vue.config.js配置

搭建好脚手架会发现,对比vue2.0版本少了build.webpack等的配置. vue cli3.0项目中需要配置其他参数时,需要新建文件'vue.config.js',与package.json在同一级目录下. module.exports = { // 项目部署的基础路径 // 我们默认假设你的应用将会部署在域名的根部, // 比如 https://www.my-app.com/ // 如果你的应用时部署在一个子路径下,那么你需要在这里 // 指定子路径.比如,如果你的应用部署在 // h

webpack.config.js配置信息的说明

module.exports = { entry: "./src/main.js", output: { filename: "build/build.js" }, module: { loaders: [ //.css 文件使用 style-loader 和 css-loader 来处理 { test: /\.css$/, loader: "style!css" }, //.js 文件使用 jsx-loader 来编译处理 { test: /\

【vue-cli 3.0】 vue.config.js配置 - 路径别名

如何配置vue-cli 3中vue.config.js的路径别名? 前段时间更新电脑重装了一下vue-cli,发现了vue-cli已经更新到3.0版.用来搭建项目后发现简化了很多,而且配置文件现在可以全部统一在vue.config.js中,很方便有没有,从此以后一个配置文件走遍公司大小项目,妈妈再也不用担心我每次新建项目时重新配置各个复杂的选项了.那么怎么在vue.config.js中配置路径别名呢? 1. 创建项目 2. 在根目录下新建 vue.config.js 3. 修改vue.confi

webpack.config.js====配置babel

参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 等版本的语法转化规则babel-polyfill: es6 内置方法和函数转化垫片babel-plugin-transform-runtime: 避免 polyfill 污染全局变量 cnpm install --save-dev babel-core babel-loader babel-plug

webpack.config.js配置实例

const path = require('path') const HtmlWebPackPlugin = require('html-webpack-plugin') // 导入 在内存中自动生成 index 页面的插件 // 创建一个插件的实例对象 const htmlPlugin = new HtmlWebPackPlugin({ template: path.join(__dirname, './src/index.html'), // 源文件 filename: 'index.htm

js在页面中嵌入pdf文件

由于项目需求,需要在jsp页面中嵌入PDF文件,在网上搜了很多方法,大部分是用<object>标签钱嵌入,发现并不好用. 这里介绍一个很好用的插件,PDFObject  https://pdfobject.com/ 由于用的是框架,所以我直接把pdfobjects.js的代码复制到了项目中,按照上面说的方法成功插入了pdf.