HTA+Batch hybrid; sheet.cssRules.length fails when file is too large
Posted: 14 Apr 2019 17:37
After reading about HTA input forms on viewtopic.php?t=6581, I immediately tried to work it into a script I was creating. However, after the script grew larger and larger, it suddenly started failing. In one part of the Javascript in the HTML section, I have this function:
To insert CSS rules. However at some point, it kept displaying:
After some experimentation, I discovered that it was because of the file size. For example:
Works fine. However, add a couple more lines:
And suddenly, it doesn't work. Are there any ways to fix this and overcome this problem?
Code: Select all
function insertRule(rule){
sheet.insertRule(rule, sheet.cssRules.length);
}
Code: Select all
"Unable to get propery .length of undefined or null reference"
Code: Select all
<!-- :: Batch section
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
MSHTA.exe "%~F0"
PAUSE
EXIT /B
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
HTML -->
<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" BORDER="none" CAPTION="no" SHOWINTASKBAR="no" SYSMENU="no" ID="Card">
<META HTTP-EQUIV="x-ua-compatible" CONTENT="IE=9"/>
<STYLE TYPE="TEXT/CSS">
body {
background: #ffffff
}
button {
position:absolute;
left:10px;
color:#ffffff;
font-family: Arial, Sans Serif;
border:1px solid #ffffff;
border-radius:3px;
letter-spacing:0.3px;
font-size:20px;
padding:10px
}
</STYLE>
</HEAD>
<BODY>
<BUTTON>Hello</BUTTON>
<SCRIPT LANGUAGE="JavaScript">
sheet = window.document.styleSheets[0];
insertRule("button { background: #35507a; }")
function insertRule(rule){
sheet.insertRule(rule, sheet.cssRules.length);
}
</SCRIPT>
</BODY>
<HTML>
Code: Select all
<!-- :: Batch section
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
MSHTA.exe "%~F0"
PAUSE
EXIT /B
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
::STUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
HTML -->
<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" BORDER="none" CAPTION="no" SHOWINTASKBAR="no" SYSMENU="no" ID="Card">
<META HTTP-EQUIV="x-ua-compatible" CONTENT="IE=9"/>
<STYLE TYPE="TEXT/CSS">
body {
background: #ffffff
}
button {
position:absolute;
left:10px;
color:#ffffff;
font-family: Arial, Sans Serif;
border:1px solid #ffffff;
border-radius:3px;
letter-spacing:0.3px;
font-size:20px;
padding:10px
}
</STYLE>
</HEAD>
<BODY>
<BUTTON>Hello</BUTTON>
<SCRIPT LANGUAGE="JavaScript">
sheet = window.document.styleSheets[0];
insertRule("button { background: #35507a; }")
function insertRule(rule){
sheet.insertRule(rule, sheet.cssRules.length);
}
</SCRIPT>
</BODY>
<HTML>