鍍金池/ 問答/ HTML問答
安于心 回答

css 中使用的圖片資源,請(qǐng)放到static目錄下去,不要放在assert目錄

命于你 回答

Js 調(diào)用 Android 側(cè)的 Java 代碼需要 Android 側(cè)編寫通信接口:

public class YourJavaScriptInterface {
    @JavascriptInterface        //使用該注解表明該方法可以被js調(diào)用到
    public void command(string: String) {
        
    }
}

將該通信接口綁定到 WebView 上:

webView.addJavascriptInterface(new YourJavaScriptInterface(), xxx);  //第二個(gè)參數(shù)為暴露給 js 的名字

WebView 要允許 js 的執(zhí)行:

webView.getSettings().setJavaScriptEnabled(true);

然后 js 側(cè)就可以用以下方式調(diào)用到 Android 側(cè)的方法了:

window.xxx.command('hello');

基本的 Android 與 Js 交互可以參考鄙人寫的一篇博客:Android 與 Javascript 的交互

糖果果 回答

../../webpack.dev.config.js

你不是只有兩層目錄嗎? 怎么搞出 三個(gè)../來了

澐染 回答
res.send(state);

應(yīng)該是走了這個(gè)分支,http的response返回的就是state這個(gè)json,你需要node做模本引擎的話都需要res.render來渲染頁面,把stata作為參數(shù)傳入render方法,res.send就是直接給返回?cái)?shù)據(jù)(json)給client了

萢萢糖 回答

你應(yīng)該在原文件里寫相對(duì)路徑,然后webpack生成后會(huì)變成絕對(duì)路徑。
比如
原代碼里這么寫的

.phoneBox {
    padding-top: 45px;
    width: 328px;
    height: 600px;
    float: Left;
    background-image: url(../img/phone.svg);
    background-repeat: no-repeat;
    border-radius: 28px;
    box-shadow: 2px 2px 20px rgba(0,0,0,.1);
}

經(jīng)過webpack構(gòu)建后

.phoneBox {
  padding-top: 45px;
  width: 328px;
  height: 600px;
  float: Left;
  background-image: url(//localhost/h5_view_2/images/phone-d6b6a6.svg);
  background-repeat: no-repeat;
  border-radius: 28px;
  box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.1); }
心上人 回答
iframe.contentWindow.onhashchange = function() {
    // 你的操作
}
伐木累 回答

可以用item中的唯一標(biāo)示來傳給這個(gè)子組件如(id)

糖果果 回答

componentDidMount方法中調(diào)用ReactDOM.findDOMNode(this)就能獲取組件渲染的元素的節(jié)點(diǎn)了,通過這個(gè)節(jié)點(diǎn)就能拿到組件的高和寬了

我已經(jīng)試過了,應(yīng)該是沒問題的,希望能夠幫到你:)

鐧簞噯 回答

前端存在信息泄露嗎?
所有在前端里的數(shù)據(jù)不都是透明的嘛
你的currentUser就不應(yīng)該存敏感信息,只要有基本信息就行了,泄露也沒關(guān)系

柚稚 回答

所有以前的jquery可以實(shí)現(xiàn)的功能用vue可以用更有效簡(jiǎn)單的方法實(shí)現(xiàn)。原理都是一樣的。
正好前幾天我寫一個(gè)公司網(wǎng)站用到了導(dǎo)航,下面是我寫的代碼,代碼量很少。

//導(dǎo)航平滑滾動(dòng)
export default {
        name: 'Main',
        data() {
            return {
                msg: 'Welcome to Your Vue.js App'
            }
        },
        components: {
            "top": Top,
            "official": Official,
            "wechat": Wechat,
            "payment": Payment,
            "category": Category,
            "mall": Mall,
            "cater": Cater,
            "wechat-pay": WechatPay,
            "little": Little,
            "crm": Crm,
            "adv": Adv,
            "contact": Contact,
            "my-footer": MyFooter,
            "loading": Loading
        },
        computed: {
            // 計(jì)算屬性的 getter
            heightNum: function () {
                return 1;
            },
            position: function () {
                let position = this.$store.getters.getPosition;
                console.log(position);
                let height = this.$refs[position].offsetTop;
                let scrollTopValue = this.$refs[position].scrollTop;
                this.$store.commit('changeHeight', height);
                this.$store.commit('changeScroll', scrollTopValue);
                return position;
            }
        },
        mounted: function () {
            this.$nextTick(function () {
                // Code that will run only after the
                // entire view has been rendered
                window.addEventListener('scroll', this.changeActive);
                this.getOffsetTop();
                this.getScrollTop();
            })
        },
        methods: {
            greet: function (event) {
                // `this` 在方法里指向當(dāng)前 Vue 實(shí)例
                alert('Hello ' + this.name + '!')
                // `event` 是原生 DOM 事件
                if (event) {
                    alert(event.target.tagName)
                }
            },
            scrollTo: function (data) {
                let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
                let des = this.$refs[data].offsetTop;
                let start = this.$refs[data].scrollTop;
                this.moveSlowly(des, start);
            },
            moveSlowly: function (des, start, time) {
                clearInterval(timer);
                let speedTime = time || 100;
                start || (start = 0);
                let distance = des - start;
                let speed = distance / speedTime;
                let i = 1;
                let pos = start;
                let timer = setInterval(function () {
                    if (i == speedTime) {
                        pos = des;
                        document.documentElement.scrollTop = document.body.scrollTop = pos;
                        clearInterval(timer);
                    } else {
                        pos = pos + speed;
                        document.documentElement.scrollTop = document.body.scrollTop = pos;
                        i++;
                    }
                }, 1)
            },
            changeActive: function () {
                let top = this.$refs.top.offsetTop;
                let wechat = this.$refs.wechat.offsetTop;
                let category = this.$refs.category.offsetTop;
                let contact = this.$refs.contact.offsetTop;
                let scrollY = this.scrollY();
                this.remove_active();
                (scrollY > 0 && scrollY < 500) && (this.$refs.navTop.className = 'active');
                (scrollY > wechat && scrollY < (category)) && (this.$refs.navWechat.className = 'active');
                (scrollY > category && scrollY < (contact)) && (this.$refs.navCategory.className = 'active');
                (scrollY > contact && scrollY < (contact + 500)) && (this.$refs.navContact.className = 'active');
            },
            remove_active: function () {
                this.$refs.navTop.className = '';
                this.$refs.navWechat.className = '';
                this.$refs.navCategory.className = '';
                this.$refs.navContact.className = '';
            },
            // 滾動(dòng)條高
            scrollY: function () {
                return document.documentElement.scrollTop || document.body.scrollTop;
            },
            getOffsetTop: function () {
                let service = this.$refs.service.offsetTop;
                let offsetTop = new Object();
                offsetTop.mall = this.$refs.mall.offsetTop + service;
                offsetTop.cater = this.$refs.cater.offsetTop + service;
                offsetTop.wechatpay = this.$refs.wechatpay.offsetTop + service;
                offsetTop.little = this.$refs.little.offsetTop + service;
                offsetTop.crm = this.$refs.crm.offsetTop + service;
                offsetTop.adv = this.$refs.adv.offsetTop + service;
                this.$store.commit('changeOffsetTop', offsetTop);
            },
            getScrollTop: function () {
                let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
                let scrollTopLen = new Object();
                scrollTopLen.mall = this.$refs.mall.scrollTop;
                scrollTopLen.cater = this.$refs.cater.scrollTop;
                scrollTopLen.wechatpay = this.$refs.wechatpay.scrollTop;
                scrollTopLen.little = this.$refs.little.scrollTop;
                scrollTopLen.crm = this.$refs.crm.scrollTop;
                scrollTopLen.adv = this.$refs.adv.scrollTop;
                this.$store.commit('changeScrollTop', scrollTopLen);
            }
        }
    }
</script>
久不遇 回答

上傳文件你可以分塊啊 用plupload 前端控制進(jìn)度 下次打開頁面可以重新繼續(xù)上傳

毀與悔 回答

你的方法使用錯(cuò)誤,具體可以參考官方文檔的寫法,具體見:Navigating from the Root component

右上角的按鈕是改不了的,微信自己的

卟乖 回答

這應(yīng)該是控制臺(tái)的原因console.log是異步的嗎?

奧特蛋 回答

直接push,有興趣可以看看我的博客鏈接描述

//onchange 
    for(var i = 0;i<files.length;i++){                
         fileArr.push(files[i]);
        //....圖片的預(yù)覽操作
    }


//提交
function sub(){    
var formData = new FormData();    
    for(var i =0;i<fileArr.length;i++){    //提交時(shí),我們把fileArr中的數(shù)據(jù)遍歷一遍
        formData.append("upfile[]", fileArr[i]); 
    };
    $.ajax({
          url: "1.php",
          type: "POST",
          data:formData,
          cache:false,         //不設(shè)置緩存
          processData: false,  // 不處理數(shù)據(jù)
          contentType: false   // 不設(shè)置內(nèi)容類型
    });    
}