0

我正在尝试这个简单的 css 和 js 密码强度检查器。当 css 和 js 包含在如下文件中时,它工作得非常好。但是,如果我将 js 放在一个单独的文件中并将其包含在此文件中,它将无法正常工作。此外,如果我将 css 放在外部 css 文件中,它不会为页面设置样式。

要包括它,我只是简单地说:

<link rel="stylesheet" type="text/css" href="/css/style.css" />
<script type="text/javascript" src="/js/js.js"></script>

我看不出我做错了什么,或者它与代码有关,并且出于某种原因它需要在同一个文件中?

该文件是一个 php 文件,因为我稍后会向其中添加 php,但这并没有改变任何东西吗?

<html>
<head>
    <title>strength check</title>
    <style type="text/css">
    #passwordStrength {
        height:10px;
        display:block;
        float:left; 
    }
    .strength0 {
        width:150px;
        background:#cccccc;
    }     
    .strength1 {
        width:20px;
        background:#ff0000;
    } 
    .strength2 {
        width:40px;    
        background:#ff5f5f;
    } 
    .strength3 { 
        width:60px;
        background:#56e500;
    }
    .strength4 {
        background:#4dcd00;
        width:80px;
    } 
    .strength5 { 
        background:#399800;
        width:150px;
    } 
    </style>
    <script language="javascript" type="text/javascript">
    function passwordStrength(password) {

        var desc = new Array();
        desc[0] = "Very Weak";
        desc[1] = "Weak";
        desc[2] = "Better";
        desc[3] = "Medium";
        desc[4] = "Strong";
        desc[5] = "Strongest";

        var score = 0;

        //if password bigger than 6 give 1 point
        if (password.length > 6) score++;

        //if password has both lower and uppercase characters give 1 point      
        if ((password.match(/[a-z]/)) && (password.match(/[A-Z]/))) score++;

        //if password has at least one number give 1 point
        if (password.match(/\d+/)) score++;

        //if password has at least one special caracther give 1 point
        if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/)) score++;
        //if password bigger than 12 give another 1 point
        if (password.length > 12) score++;

        document.getElementById("passwordDescription").innerHTML = desc[score];
        document.getElementById("passwordStrength").className = "strength" + score;
    }​
    </script>   
</head>
<body>
    <input type="password" caption="password" name="password" onkeyup="passwordStrength(this.value);" size="60">
    <div style="font-size: 10px"; id="passwordDescription">Password Strength</div>
    <div class="strength0" id="passwordStrength"></div> 
</body>
</html>
4

4 回答 4

3

删除/链接开头的:

<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/js.js"></script>

/意味着您的文件位于域的根目录。

于 2012-07-05T12:48:13.313 回答
0
  1. 做任何你尝试过的事情。
  2. 在 Firefox 中打开页面。
  3. 查看源代码
  4. 在源页面中,您可以将脚本和 css 文件视为链接。
  5. 点击链接。它将显示页面无法显示。

在这种情况下,您的包含位置是错误的!

将css和js放在正确的位置,直到第5步显示页面以外的东西无法显示

于 2012-07-05T12:46:47.387 回答
0

我不知道您使用的是什么服务器,但是如果您使用的是 Tomcat,则需要丢失源路径的前导斜杠。

尝试:

css/style.css

代替

/css/style.css
于 2012-07-05T12:48:03.840 回答
0

尝试设置不带斜杠的路径——如果您的服务器的子目录中包含所有内容,那么斜杠可能会破坏路径。

<link rel="stylesheet" href="css/style.css" />
<script src="js/js.js"></script>

在 HTML5 中,您还可以摆脱类型属性(以防万一您使用 HTML5 文档类型)。

于 2012-07-05T12:50:09.583 回答