我在浏览器上报告javaScript错误时遇到问题。虽然页面功能齐全,但我不喜欢javaScript错误,因为它对用户来说很糟糕。
我在FF中遇到的错误是:
Error: SyntaxError: missing } in XML expression
Source File: http://localhost/resources/adagiotips.php
Line: 14, Column: 4
Source Code:
});
我在jQuery中使用getScript()函数来定位一个php页面,该页面呈现包含javascript和html的代码。然后我使用此页面的输出来填充div的内部html。这就是我在第1页上的内容:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.getScript('/includes/showmehow_videolist.php?sort=recent&type=desc', function(output){
jQuery("#apple").html(output);
});
});
</script>
<div id="apple">content will populate here</div>
在“showmehow_videolist.php”上我有一个php while循环,它写了一个jQuery函数列表和一些html。代码看起来像这样:
<script type="text/javascript">
jQuery(document).ready(function(){
<?PHP
$result4 = mysql_query("SELECT * FROM videos")or die(mysql_error());
while($row4 = mysql_fetch_array($result4)){
?>
jQuery("#video_<?=$row4['vid_id']?>").fancybox({
'width' : <?=$new_width_parsed?>,
'height' : <?=$new_height_parsed?>,
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'none',
'type' : 'iframe',
'scrolling' : 'no',
'overlayColor' : '#000',
'overlayOpacity' : 0.6
});
<?
}//end while
?>
}); //end document.ready function
</script>
<div>some content</div>
当我从第2页删除javascript部分时,我在FF中遇到了另一个错误:
Error: SyntaxError: XML can't be the whole program
Source File: http://localhost/resources/adagiotips.php
Line: 1136, Column: 6
Source Code:
</div>
有什么想法吗?问题是因为我用javascript来填充div的innerhtml ...来自javascript?就像我说的,一切正常,只是理解为什么浏览器告诉我有错误。
非常感谢任何帮助,谢谢。
/includes/showmehow_videolist.php的输出:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#video_82").fancybox({
'width' : 782,
'height' : 720,
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'none',
'type' : 'iframe',
'scrolling' : 'no',
'overlayColor' : '#000',
'overlayOpacity' : 0.6
});
jQuery("#video_83").fancybox({
'width' : 782,
'height' : 720,
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'none',
'type' : 'iframe',
'scrolling' : 'no',
'overlayColor' : '#000',
'overlayOpacity' : 0.6
});
jQuery("#video_84").fancybox({
'width' : 782,
'height' : 720,
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'none',
'type' : 'iframe',
'scrolling' : 'no',
'overlayColor' : '#000',
'overlayOpacity' : 0.6
});
}); //end document.ready function
</script>
<div style="overflow-x:hidden; overflow-y: auto; height:350px; width:725px;" id="main_div_of_video_links">
<div class="tab1">
<div class="tab2">
<span class="h2_standard">5</span> <span class="sm">views</span>
</div>
<div class="tab3">
<img src="/images/icon_video_sm.gif" alt="History - Show Me How Video!" /> <a id="video_181" href="../video_pop.php?id=181" class="newAStyle">Adagio OrderEntry History</a>
<!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />
</div>
<div class="tab4">
<span class="sm"><em>Added: </em>Jul 23 2012</span>
</div>
<div style="clear:both"></div>
</div>
<div class="tab1">
<div class="tab2">
<span class="h2_standard">5</span> <span class="sm">views</span>
</div>
<div class="tab3">
<img src="/images/icon_video_sm.gif" alt="Alternate Price Lists - Show Me How Video!" /> <a id="video_165" href="../video_pop.php?id=165" class="newAStyle">Adagio Inventory Alternate Price Lists</a>
<!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />
</div>
<div class="tab4">
<span class="sm"><em>Added: </em>Jul 13 2012</span>
</div>
<div style="clear:both"></div>
</div>
<div class="tab1">
<div class="tab2">
<span class="h2_standard">1</span> <span class="sm">views</span>
</div>
<div class="tab3">
<img src="/images/icon_video_sm.gif" alt="Special Prices - Show Me How Video!" /> <a id="video_166" href="../video_pop.php?id=166" class="newAStyle">Adagio OrderEntry Special Prices</a>
<!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />
</div>
<div class="tab4">
<span class="sm"><em>Added: </em>Jul 13 2012</span>
</div>
<div style="clear:both"></div>
</div>
</div>
答案 0 :(得分:0)
尝试以下更改:
jQuery("#apple").html(output);
。您不需要将返回的脚本嵌入到div中。来自page2的脚本将由jQuery解析和运行,而无需将其嵌入到page1 首先尝试以上操作,如果这不能解决问题,请执行第二步:
在第2页中,删除以下行:
&LT; script type =“text / java script”&gt; jQuery的(文件)。就绪(函数(){} &LT; /脚本&GT;
这是因为,使用jQuery.getScript获取的JS已经在jQuery.ready()fn的上下文中运行,所以不应该需要在第2页中包装你的javascript,它再次..
答案 1 :(得分:0)
我知道了,结果是使用getScript和html()不是要走的路,而是我应该使用load()函数:
jQuery('#apple').load('/includes/showmehow_videolist.php?sort=recent&type=desc');
没有错误;)