嵌入jquery.prettyPhoto会导致脚本显示在页面上

时间:2016-06-26 19:51:05

标签: javascript jquery html minify prettyphoto

当我搬家时:

<script src="js/jquery.prettyPhoto.js"></script>

要:

<script type="text/javascript">
   ...
</script>

然后,脚本开始从粗体部分开始在页面上显示:

style =“border:none; overflow:hidden; width:500px; height:23px;” allowTransparency =“true”&gt; '},s); var o = this,u = false,a,f,l,c,h,p,d = e(window).height(),v = è...

该脚本归因于以下信息:

Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.1.5

如何将脚本从.js文件移至页面correctly

3 个答案:

答案 0 :(得分:3)

javascript的内容包含结束脚本标记</script>时,它可能导致浏览器的解析器错误地解释脚本块代码。

这里的代码:

<script type="text/javascript">
    alert("</script>");
</script>

无法使用,您将在浏览器中看到的输出

");

好像浏览器将脚本块读为

**script start tag ->** <script type="text/javascript">
    alert("</script> **<- script end tag**

解决方案

在脚本块中包含<script>...</script>字符串有两种已知的解决方案:

  1. 将字符串分成两个单独的字符串,并使用+
  2. 连接它们

    <script type="text/javascript">
        alert("<scr"+"ipt>...</scr"+ "ipt>");
    </script>

    1. 用注释区块代码包裹整个脚本代码块:
    2.     <script type="text/javascript">
              <!--
              alert("<script></script>");
              -->
          </script>

        

      请注意,如果您只有结束标记,则第二个示例将 NOT WORK ,因为浏览器会将结束字符串标记为应该关闭原始开放的标记{{1} } tag。

      此示例无效:

      <scrip>

      专门针对您的代码 - this is the jsfiddle进行修复。

答案 1 :(得分:2)

没有错误。 https://jsfiddle.net/rL9h958e/1/

该脚本有很多= =问题以及糟糕的HTML。

在所有情况下,Social_Tools看起来都很可疑,

social_tools:'<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a></div>' + 
            '<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></div>' +
                     '<div class="facebook">

答案 2 :(得分:1)

是您的网页html4还是html5?

<script type="text/javascript" src="javascript.js"></script>

html5你不需要使用type =

<script src="javascript.js"></script>