javascript - safari 显示 javascript 源而不是执行

标签 javascript flash safari mootools

我有一个 Web 应用程序,该应用程序在页面中穿插了 javscript。发生的事情是 safari 将转储 javascript 代码的源代码而不是执行它。我可以始终如一地重现这一点。

该页面是不同形式内容的混搭:

它使用 osflv 加载 flash 视频,并通过服务器端的 php 脚本生成。此外,该页面还包含对 Google map API 的调用以显示 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>

这是在 body 标记结束之前嵌入到页面底部的 html 中的最后一段代码,Safari 会在超出良好 map 脚本包含的任何点随机吐出浏览器中的 src 代码:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;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转储的页面 alt text
(来源:oxid8.com)

页面应该是这样的: alt text
(来源:oxid8.com)

最佳答案

首先,你不应该使用language属性,它是deprecated .

我唯一能看到的是您在 HTML 中使用 application/javascript 而不是 text/javascript (您在 HTML 中指定的和MIME 类型的服务器在发送 Javascript 文件时使用),但我无法使用像这样的简单测试用例在 Chromium/Linux 上重现任何错误

<!DOCTYPE html>
<html>
  <head> 
    <title>dkdkd</title> 
  </head>
  <body> 
    <script type="application/javascript"> 
      var i=0;
    </script>
  </body>
</html>

(也许你也可以试试这个。)

以防万一:脚本元素是否正确关闭?所有 Javascript 是否正确,即是否通过 JSLint

也许您可以粘贴 HTML 页面的完整源代码(最好是类似 Pastebin 的内容),以便我们仔细查看。

关于javascript - safari 显示 javascript 源而不是执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322734/

相关文章:

flash - Flash录制和播放速度快2倍

linux - 阻止访问者访问 .xml 文件但允许 Flash 打开它们

javascript - 当使用自定义字体系列时,为什么 safari 的元素宽度与 chrome 和 firefox 报告的有很大不同?

javascript - 使用单选按钮在 div 之间切换

javascript - 访问 JavaScript 引擎 :V8 directly from android application

flash - swfender(swftools)批量输出为png

jquery - 是否有更好的方法在 iPhone 的 Safari 中滚动页面(使用 jQuery)(scrollTop 无法正常工作)

javascript - 使用 multer 和 angularjs 从文本框中添加名称和原始文件名创建新名称时上传两次

javascript - 动态访问 Vue 数据

css - 如何在使用 Zurb-Foundation 的站点中整齐地堆叠一行