如何将正确的URL传递到iframe页面
How to pass correct urls to iframe page?
我的网站支持以下URL:
(1) http://mysite.example.com/section/ - main page
(2) http://mysite.example.com/section/#page2
(3) http://mysite.example.com/section/surname-name-middlename/
(4) http://mysite.example.com/section/surname-name-middlename/#page2
(5) http://mysite.example.com/section/add
现在我正试图在另一个网站上以iframe的形式显示我的网站。该站点支持setLocation
和onLocationChanged
方法来定义哈希,并在相应地更改哈希时做出反应。
我已经为所有页面定义了setLocation
,这里没有问题。因此,第三方网站上的链接如下:
(1) http://3rdpartysite.com/mypage
(2) http://3rdpartysite.com/mypage#page2
(3) http://3rdpartysite.com/mypage#surname-name-middlename
(4) http://3rdpartysite.com/mypage#surname-name-middlename,page2
(5) http://3rdpartysite.com/mypage#add
但现在我正在尝试实现正确的onLocationChanged
行为。
section
是所有页面的公共部分。
我尝试在主页上做以下操作(不支持上面的选项(4)):
// location here is everything after # in url: http://3rdpartysite.com/mypage#...
function onLocationChanged(location) {
if (location.indexOf('page')>-1) {
window.location.href = '#'+location;
} else if (location == 'add') {
window.location.href = window.location.host + window.location.pathname + '/add';
} else if (location != '') {
window.location.href = window.location.host + window.location.pathname + '/'+location+'/';
}
}
但它不能正常工作。我的方法出了什么问题?
以下是主页上正常工作的代码:
function onLocationChanged(loc) {
var url = window.location.protocol + '//' + window.location.host + window.location.pathname;
if (loc.indexOf('page') > -1 && loc.indexOf(',page') == -1) {
window.location.href = '#' + loc;
} else if (loc == 'add') {
window.location.href = url + 'add';
} else if (loc != '' && loc.indexOf(',page') > -1) {
window.location.href = url + '' + loc.split(',', 2)[0] + '/#' + loc.split(',', 2)[1];
} else if (loc != '') {
window.location.href = url + '' + loc + '/';
}
}
这是其他页面的代码(不支持选项(4)):
function onLocationChanged(loc) {
var url = window.location.protocol + '//' + window.location.host + '/' + window.location.pathname.split('/',3)[1] + '/';
if (loc.indexOf('page')>-1) {
window.location.href = url + '#' + loc;
} else if (loc == 'add') {
window.location.href = url + 'add';
} else if (loc != '') {
window.location.href = url + '' + loc + '/';
}
}
不知道如何让它变得普通。
相关文章:
- 停止iframe页面中的所有动画
- 如何解析嵌入的iFrame以仅显示iFrame页面中的片段
- 从 iframe 页面事件更改父级的 css
- 在父框架(javascript)中打开iframe页面
- 重新加载父阴影框 iframe 页面,而不会丢失 POST 数据
- 实时检测 iframe 页面加载
- iFrame 页面过渡的 Javascript 控制
- 保留 iframe 页面的状态
- 当使用http访问我的facebook iframe页面时,我如何才能获得Modal而不是弹出窗口
- Jquery将一些上下文附加到特定的iframe页面
- 检查iframe页面是否包含使用JavaScript或jQuery的内容
- 如何在iframe中欺骗一个iframe页面加载非
- 如何防止iframe页面重定向父页面
- 如果iframe页面使用_parent target,请在新选项卡中打开iframe
- 检查iFrame页面是否存在
- 在iframe中加载网页,但替换iframe页面中url的一部分
- 如何将正确的URL传递到iframe页面
- Javascript /jquery:检测iframe页面加载失败
- 通过Javascript在各种浏览器窗口/选项卡中维护iFrame页面的状态
- Javascript,改变整个iframe页面