У нас есть это решение, работающее в браузерах IE и Firefox, которые вы можете продемонстрировать ниже, но если вы нажмете на демонстрационные ссылки, используя Chrome или Safari, контент будет постоянно зацикливаться на шаблоне в источнике iframe, где мне и нужнопомощь в решении проблемы Chrome / Safari.
Нам нужно было решение, чтобы наши пользователи имели прямой доступ к нашей странице с фреймом, а при доступе к странице она оборачивала бы страницу соответствующим фреймом.шаблон.Как упоминалось выше, решение работает в IE / Firefox, но не в Chrome и Safari.
Обе эти страницы имеют одинаковое содержимое, но разные шаблоны iframed.
Например, нажав эту ссылкупереместит пользователя к содержимому Признания наград и обернет шаблон AMU вокруг той же страницы с #AMU, добавленным к URL http://www.apus.edu/alumni/awards-recognition/index.htm#AMU
Это точно такой же контент, но он обернет шаблон APU вокругта же страница, поскольку #APU добавлен к URL http://www.apus.edu/alumni/awards-recognition/index.htm#APU
Ниже приведен javascript, который идет в родительском iframe: http://www.apu.apus.edu/community/alumni/index.htm
<script type="text/javascript">
function gup( name ) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
var ifSrc = gup("forward");
$(function(){
if(ifSrc)
$("#iframe").attr('src', ifSrc);
});
</script>
Ниже приведен код, которыйпредназначен для исходного контента и страницы, на которой он будет идти: http://www.apus.edu/alumni/awards-recognition/index.htm
<script type="text/javascript">
function fnGetDomain(url) {
if(url)
return url.match(/:\/\/(.[^/]+)/)[1];
else
return "";
}
var curDomain = fnGetDomain(document.referrer);
var curHash = document.location.hash.toLowerCase();
try { frameEl = window.frameElement; }
catch(e) { frameEl = 1; }
if(!frameEl) {
//if (frameElement == null) {
if(!curDomain) curDomain = "www.apu.apus.edu";
if(curHash == "#apu") curDomain = "www.apu.apus.edu";
else if(curHash == "#amu") curDomain = "www.amu.apus.edu";
//change location or close
window.location = "http://" + curDomain + "/community/alumni/index.htm?forward=" + document.location.href;
// or window.close();
}
</script>