angular.js - 可以通過vue或者angular雙向數(shù)據(jù)綁定iframe元素嗎?
問題描述
請教一下開發(fā)一個(gè)H5游戲的管理系統(tǒng),想在后臺輸入內(nèi)容的時(shí)候iframe里面的頁面元素即時(shí)同步內(nèi)容,想咨詢下用什么技術(shù)可以實(shí)現(xiàn)?vue和angular可以實(shí)現(xiàn)嗎?
效果如下圖:
問題解答
回答1:parent.html
<p id='app'> <input type='text' v-model='item.name' /> <input type='checkbox' v-model='item.check' /> <input type='date' v-model='item.date' /> <iframe ref='iframe' src='http://www.aoyou183.cn/wenda/child.html' @load='load'></iframe></p><script src='http://cdn.bootcss.com/vue/2.1.8/vue.min.js'></script><script> window.app = new Vue({el: ’#app’,data() { return {item: { name: null, check: false, date: null,}, }},methods: { load: function (item) {const app = this.$refs.iframe.contentWindow.app;if (app && app.setContent) { app.setContent(this.item)}else { window._item = this.item} }} })</script>
child.html
<p id='app'> {{ item }}</p><script src='http://cdn.bootcss.com/vue/2.1.8/vue.min.js'></script><script> window.app = new Vue({el: ’#app’,data() { return {item: null, }},created: function () { this.setContent(window.parent.window._item);},methods: { setContent: function (item) {this.item = item; }} })</script>
或者傳遞vuex的store 2個(gè)頁面的vue實(shí)例用同一個(gè)store
回答2:你用iframe的話只能用websocket來通知更新了,vue和ag的雙向數(shù)據(jù)是在同一頁面才可以實(shí)時(shí)更新的
回答3:iframe屬于跨頁面了,如果別人可以用ng或者vue就可以操作你的頁面是極不安全的,也是不可能的。
你可以試試postMessage。
相關(guān)文章:
1. android-studio - Android Studio 運(yùn)行項(xiàng)目的時(shí)候一堆警告,跑步起來!?2. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?3. MySQL數(shù)據(jù)庫中文亂碼的原因4. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。5. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?6. dockerfile - [docker build image失敗- npm install]7. angular.js - 關(guān)于$apply()8. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?9. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???10. nignx - docker內(nèi)nginx 80端口被占用
