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

embedding jquery.prettyPhoto causes script to show on page

当我移动时:

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

收件人:

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

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

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

该脚本具有以下信息:

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

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

您的页面是 html4 还是 html5?

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

html5 你不需要使用 type=

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

没有错误。 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">

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. 用注释块代码包裹整个脚本代码块:

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

Note that the second example will NOT WORK if you only have the closing-tag, since the browser will tag that closing string as the tag that was supposed to close your original opening <scrip> tag.

此示例将不起作用:

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

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