HTML - 脚本在 JSFiddle 中工作,但当我单独 运行 脚本时却不行

HTML - Script working in JSFiddle but not when I run the script alone

以下脚本在 JSFiddle 上按预期工作,但是当我将脚本复制出来并将其放入本地的 .html 文件时,它不再工作。报告的 hyperlinks 不再出现。

下面是我保存到 .html 文件的脚本,它应该是上面 JSFiddle link 中内容的副本。

<html>
<meta http-equiv="Content - Language" content="en - gb">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Report Menu</title> 
<style fprolloverstyle>A:hover {color: red; font-weight: bold} 
</style> 
<script type='text/javascript'>//<![CDATA[
window.onload=function(){
function getMonthString(num) {

    var month; //Create a local variable to hold the string
    switch (num) {
        case 0:
            month = "01";
            break;
        case 1:
            month = "02";
            break;
        case 2:
            month = "03";
            break;
        case 3:
            month = "04";
            break;
        case 4:
            month = "05";
            break;
        case 5:
            month = "06";
            break;
        case 6:
            month = "07";
            break;
        case 7:
            month = "08";
            break;
        case 8:
            month = "09";
            break;
        case 9:
            month = "10";
            break;
        case 10:
            month = "11";
            break;
        case 11:
            month = "12";
            break;
        default:
            month = "13";
    }
    return month;
};
var d = new Date();
var name = 'Report_';
var name2 = 'Report_';

name += d.getFullYear();
name += getMonthString(d.getMonth());
name += d.getDate() - 1;
name += '.pdf';

name2 += d.getFullYear();
name2 += getMonthString(d.getMonth());
name2 += d.getDate() - 2;
name2 += '.pdf';

document.getElementById('lnk').innerText = name;

document.getElementById('lnk').setAttribute('href', name)

document.getElementById('lnk2').innerText = name2;

document.getElementById('lnk2').setAttribute('href', name2)
}//]]> 

</script>

</head>
<body>
  <title>Report Menu</title>
</head>
<body LEFTMARGIN="150">
    <table height=1 align="Right">
         <Font Size="1"> <font face='Mylius Sans'color= 999999 >This menu last refreshed: 10Aug15 02:19</font> 
    </table>
    <p><font face="Arial" size="3"><B>Daily_Network_Operations_Report</B></p><p><font size="2">Choose your report:</font>

    </p>
    <table border="0" cellpadding="2" cellspacing="5"><font size="2">
<tr><a href='#' id="lnk"></a></tr>
<tr><a href='#' id="lnk2"></a></tr>




</table>
<p><font face="Arial" size="1">earlier reports may be available - please email </p>
</body>



</html>

添加

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

在您的标签开头(顺便说一句,您缺少开始标签。

问题是无论你在哪个区域,它都可能进入兼容模式运行。

尝试将您的脚本放在 body 标记的末尾:

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

Working Plunker

Not working Plunker

另一个解决方案。在正文标签中使用 onload

DEMO

即使问题已得到解答,我仍想补充 Altay Mazlum 指出的内容。此代码在 Firefox 下不起作用(至少在我的情况下)。

您必须将 innerText 替换为 textContent。

此主题的回复('innerText' works in IE, but not in Firefox) by Prakash K

Firefox uses the W3C-compliant textContent property.