frame页面地址转向跨域解决方法
mainFrame.htm下有兩個iframe,左邊是left.aspx,frame名是leftFrame,右邊名是是mainFrame
left.aspx包含了很多的連接,linka和linkc連到oa.shrcoa.gov.cn域名下的一個頁面,linkb連到contact.shrcoa.gov.cn域名下的一個頁面,
left.aspx有腳本實現跳轉,parent.frames['mainFrame'].frameElement.src = '....';,當點擊linka后再點擊linkc沒有問題,在同一個域里,
但點擊linka后再點擊linkb再點擊linkc就抱拒絕訪問,應該是跨域了,解決方法如下:
left.aspx加載腳本,這里用到了jquery腳本
$(function() {
? loadScript('scripts/nav.js');
});
loadScript腳本的定義,放在需要引用paren的頁面里,也就是left.aspx
var lastScript;
var h = document.getElementsByTagName("head")[0];
function loadScript(url) {
??? var f = document.createElement("script");
??? var d = new Date().getTime();
??? f.type = "text/javascript";
??? f.id = d;
??? f.src = url + '?' + d;
??? h.appendChild(f);
??? if (lastScript && g(lastScript)) g(lastScript).parentNode.removeChild(g(lastScript));
??? lastScript = d;
}
function g(x) { return document.getElementById(x) };
--========================================================================
nav.js內容如下,放在和left.aspx一個網站里:
function nav(url) {
??? //parent.frames['mainFrame'].frameElement.src = url;
??? parent.navig(url);//這里parent指的是mainFrame.htm
}
left.aspx里的每次鏈接點擊時調用已經加載的腳本:
nav(o.hrefs);
mainFrame.htm里寫好函數,在自己頁面里調用就不會抱錯了:
function navig(url) {
??? document.frames["mainFrame"].location.href = url;
}
總結
以上是生活随笔為你收集整理的frame页面地址转向跨域解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lync在Internet上无法登录问题
- 下一篇: 精通Android3笔记--第四章