Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
safari显示javascript源代码而不是执行_Javascript_Flash_Safari_Mootools - Fatal编程技术网

safari显示javascript源代码而不是执行

safari显示javascript源代码而不是执行,javascript,flash,safari,mootools,Javascript,Flash,Safari,Mootools,我有一个web应用程序,它的脚本散布在整个页面中。发生的情况是safari将转储javascript代码的源代码,而不是执行它。我可以始终如一地复制这一点 该页面是不同形式内容的聚合: 它使用osflv加载flash视频,并通过服务器端的php脚本生成。此外,该页面还包含对谷歌地图API的调用,以显示地图。使用javascript将内容放置在单独的选项卡中,以提供选项卡交互 我也在使用mootools,不确定这是否会导致问题 以下是javascript包括的内容: <script type

我有一个web应用程序,它的脚本散布在整个页面中。发生的情况是safari将转储javascript代码的源代码,而不是执行它。我可以始终如一地复制这一点

该页面是不同形式内容的聚合:

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

var-whitney={src:'/flash/whitney.swf'};
激活(惠特尼);
替换(whitney,{selector:'h6#propertyHeadline',wmode:'transparent',css:{.sIFR root':{'color':'1ca9b9'}}});
这段代码也可以正常执行:

<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>

var src='/player';
如果(!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',宽度',520',高度',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&a自动加载=关闭,体积=70’;
这是嵌入在html中的最后一段代码,位于页面底部body标记末尾之前,Safari将在浏览器中的good maps脚本之外的任意位置随机吐出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)

函数InitPropertyDashboardTabs(){
mytabs=新选项卡面板(“仪表板选项卡面板”);
初始化语法();
初始化步骤();
初始化映射(“地址被屏蔽”);
}
var-map=null;
var-geocoder=null;
函数initializeSteplan()
{
var flashvars={PropertyId:1,BasePath:'/',wmode:'transparent'};
var params={wmode:'transparent'};
var attributes={id:'SWFSitePlan',name:'SWFSitePlan'};
swfobject.embeddeswf(“/flash/FloorplanViewer/FloorplanViewer.swf”、“SiteplanFlash”、“915”、“500”、“9.0.0”、“expressInstall.swf”、flashvars、参数、属性);
}
函数初始化Gallery()
{
var params={wmode:'transparent'};..(更多代码)
这是包含js转储的页面的内容
(来源:)

这是页面的外观:

(来源:)

首先,你不应该使用
语言
属性,它是

我能看到的唯一一件事是,在HTML中使用
application/javascript
而不是
text/javascript
(在HTML中指定的内容与发送javascript文件时使用的MIME类型服务器之间存在差异),但我无法用一个简单的测试用例在Chromium/Linux上重现任何错误,如

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

DKD
var i=0;
(也许你也可以试试这个。)

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


也许你可以粘贴HTML页面的完整源代码(最好是在类似的东西上),这样我们可以更仔细地看一看。

我想我可以试一试。我在一些使用TinyMCE的页面上遇到了类似的问题(javascript甚至我的HTML的一部分显示在页面上)

我的解决方案是升级我使用的TinyMCE版本。v3.3有一个经过大修的Webkit处理程序

据我所知,问题在于TinyMCE向页面中注入了(糟糕的)额外的javascript块

这(以及一些类似的区块)总是注入到


当onload启动时,它会将下面的块注入DOM中的一个随机位置,破坏它上面放置的任何东西

<script type="javascript" src="http://www.example.com/javascript/rte/langs/en.js">

正如Webkit开发者工具中所看到的那样,其结果是

<td class="tab" nowrap="">

进入:

“b”nowrap=>”
因为这显然是无效的标记,所以产生的垃圾被输出

将我安装的TinyMCE从以前的stable升级到v3.3rc1解决了这个问题。参考了Webkit的全面大修


编辑:随机我指的是随机。它每次都会在不同的位置插入脚本标记,有时会破坏内容,有时不会。你能指出一个示例页面吗?其他浏览器的结果如何?对解决方案感兴趣。在使用TinyMCE的页面上,我们不时会遇到同样的问题。不幸的是,这是一个隐藏在防火墙,所以我不能只指向一个公共URL。让我试着在post@jasonbar:你是否也会像Mike一样在Flash页面上遇到这个问题?或者只有TinyMCE在其中?你是否可以在有这个问题的页面的某个地方发布一个链接或源代码?@Marcel Korpel:只有TinyMCE页面才会出现这个问题(只有当我们有多个实例时才可以。)我可以将页面源代码放在pastebin中,但当我在Safari中查看源代码时,打印的javascript代码不在那里!是否仍可以查看当前呈现的源代码?@hobodave:谢谢编辑,但Firebug说随机服务器会发送一个随机JS文件,名为
application/javascript
,没有
x-
,这是推荐的w是的,根据RFC 4329:你是在暗示即使嵌入我html中的javascript也需要应用程序/javascript吗?我不认为这是问题所在。@Mike:没有,但你没有说是关于内联javascript的:应该使用