我有一个HTML页面,可以通过innerHTML加载到另一个HTML页面中。经过几天的工作,这个脚本工作正常,并为内部页面调用另一个JS文件,一个文件(名为“Unified_app.js”)基本上运行一些日期计算。一切正常,正确的日期打印到控制台。但是,我无法弄清楚页面内的页面是否可以显示控制台日期。 Document.write在这种情况下不起作用(我假设因为标签没有正确读取?),所以我需要提出一个解决方法。有任何想法吗?
这是我拥有的innerHTML函数:
function getYearOffset(strCutoffDate, intYearOffset)
{
var datCurrentDate = new Date();
var intCurrentYear = datCurrentDate.getFullYear();
var intCurrentMonth = strCutoffDate.substr(5, 2) - 1;
var intCurrentDay = strCutoffDate.substr(8, 2);
var datCutoffDate = new Date(intCurrentYear, intCurrentMonth, intCurrentDay);
if (Number(datCurrentDate) < Number(datCutoffDate))
{
var datRequestedDate = new Date(datCurrentDate.getFullYear(), intCurrentMonth, intCurrentDay);
}
else
{
var datRequestedDate = new Date(datCurrentDate.getFullYear() + intYearOffset, intCurrentMonth, intCurrentDay);
}
return datRequestedDate.getFullYear();
}
var script = document.createElement("script");
script.src = "/resource/resmgr/scripts/Unified_app.js";
document.head.appendChild(script);
function getInclude(strIncludeContainer, strIncludeURL)
{
var strPage = '';
var intIndexOfBodyOpen = 0;
var intIndexOfBodyClose = 0;
var objXhttp;
objXhttp = new XMLHttpRequest();
objXhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
strPage = this.responseText;
intIndexOfBodyOpen = strPage.indexOf('<body>');
intIndexOfBodyClose = strPage.indexOf('</body>');
document.getElementById(strIncludeContainer).innerHTML = strPage.substring(intIndexOfBodyOpen + 6, intIndexOfBodyClose);
}
};
objXhttp.open("GET", strIncludeURL, true);
objXhttp.send();
}
我正在使用:
<script>document.write(award_year1);</script>
编写以下日期调用:
const date = new Date();
let offset = 0;
const threshold = new Date();
threshold.setMonth(3); //January is 0!
threshold.setDate(3);
if (Date.now() > threshold) {
offset = 1;
}
var theDate = new Date();
var award_year1 = date.getFullYear() + offset;
var award_year2 = date.getFullYear() + 1 + offset;
console.log(award_year1);
console.log(award_year2);
当加载页面内页面HTML文件或内部页面本身时,我得到了发送到控制台的正确日期计算,但是当加载到内部HTML页面时,我似乎无法在innerHTML页面中打印它们。其他页面。你有什么想法可以把我送到正确的道路上吗?这可能超出了我对JavaScript的理解水平。我想也许我的代码不是正确的顺序,但我一直在摆弄这个,似乎无法弄清楚在哪里或为什么。
答案 0 :(得分:0)
我不确定这是否能解决问题,但您可以尝试一下。 正如你所说的,不会触发document.write,因为你的DOM在你的DOM之前被加载了。
document.addEventListener("DOMContentLoaded", function(event) {
//your functions
});
也许这会帮助你
答案 1 :(得分:0)
我想这是不可能的。我最终用iframe替换了innerHTML,这似乎有效,所以我现在可以使用脚本标签。不是一个理想的解决方案,但它的工作原理