想在「當前位置」獲取子頁面的title屬性,可是main頁面和子頁面在不一樣的端口上,直接獲取會出現:javascript
「Blocked a frame with origin from accessing a cross-origin frame」跨域問題vue
因而改用postMessage進行跨域訪問;java
子頁面中:segmentfault
mounted(){ this.frameInfo(); }, methods: { frameInfo(){ var data = document.title; console.log(data) console.log(basepPath) parent.postMessage(data, '*');//data爲傳遞內容,*修改成具體域名或者ip }, }
父頁面中監聽子頁面傳遞來的「message」事件,剛開始我把監聽事件放在了,iframe的load事件中監聽,每次須要點擊兩次以上才能獲取到跨域
message的監聽事件,因而搜索一通, https://segmentfault.com/q/1010000006937415 post
最後把監聽事件放在<script>最底部去執行,就能正常獲取了;this
…… window.addEventListener('message', function(messageEvent) { var data = messageEvent.data; console.info('message from child:', data); vue.menuTitle = data; },false); /*]]>*/ </script>
參考:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage#Examplespa