У меня есть веб-приложение, в котором JavaScript разбросан по странице. То, что происходит, - то, что сафари сбросит источник кода javascript вместо того, чтобы выполнить его. Я могу воспроизвести это последовательно.
Страница представляет собой коллаж из различных форм контента:
загружает флэш-видео с помощью osflv и генерируется с помощью php-скрипта на стороне сервера. Кроме того, страница также содержит вызовы API Google Map для отображения карты. Содержимое размещается на отдельных вкладках с использованием JavaScript для обеспечения взаимодействия вкладок.
Я также использую mootools, и не уверен, что это может вызвать проблемы.
Вот javascript включает в себя:
<script type="text/javascript" src="/js/mootools-1.2.1-core.js"></script>
<script type="text/javascript" src="/js/mootools-1.2-more.js"></script>
<script type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="/js/sifr.js"></script>
<script type="text/javascript" src="/js/sifr-debug.js"></script>
<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/alerts.js"></script>
<script type="text/javascript" src="/js/swfobject.js"></script>
<script type="text/javascript" src="/js/autocompleter.js"></script>
<script type="text/javascript" src="/js/observer.js"></script>
<script charset='ISO-8859-1' src='/js/rac.js' language='javascript'></script>
rac.js взят из osflv, common.js и alerts.js - это пользовательский код JavaScript, который включает в себя пользовательские классы и функции, используемые для отображения или манипулирования данными на странице.
Этот блок кода выполняется на странице просто отлично:
<script type="text/javascript">
var whitney = { src: '/flash/whitney.swf'};
sIFR.activate(whitney);
sIFR.replace(whitney, { selector: 'h6#propertyHeadline', wmode:'transparent',css: {'.sIFR-root': {'color': '#1ca9b9' }}});
</script>
Этот код также отлично работает:
<script language='javascript'>
var src = '/player';
if(!DetectFlashVer(9, 0, 0) && DetectFlashVer(8, 0, 0))
src = 'player8';
AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'width', 520, 'height', 440, 'src', src, 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'id', 'flvPlayer', 'allowFullScreen', 'true', 'movie', src, 'FlashVars','movie=media/orig/4b845109d99d0.flv&fgcolor=0x1CA9B9&bgcolor=0x000000&autoload=off&volume=70');
</script>
Это последний фрагмент кода, который встроен в html в нижней части страницы до конца тега body. Safari будет случайным образом выплевывать код src в браузере в любой точке, кроме скрипта хороших карт, включая :
<script src="http://maps.google.com/maps?file=api&v=2&key=googlemapsapikeyblockedout" type="text/javascript"></script>
<script type="application/javascript">
function InitPropertyDashboardTabs(){
mytabs = new TabPanel('DashboardTabPanel');
initializeGallery();
initializeSiteplan();
initializeMap('address blocked out');
}
var map = null;
var geocoder = null;
function initializeSiteplan()
{
var flashvars = {PropertyId:1,BasePath:'/',wmode:'transparent'};
var params = {wmode: 'transparent'};
var attributes = {id: 'SWFSitePlan',name: 'SWFSitePlan'};
swfobject.embedSWF("/flash/FloorplanViewer/FloorplanViewer.swf", "SiteplanFlash", "915", "500", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
}
function initializeGallery()
{
var params = {wmode: 'transparent'};..... (more code)
Это то, что страница с дампом js
(источник: oxid8.com )
Вот как должна выглядеть страница:
(источник: oxid.com. )