gpt4 book ai didi

javascript - Chrome 特定的 Javascript 范围问题

转载 作者:行者123 更新时间:2023-11-28 08:37:58 26 4
gpt4 key购买 nike

我在 ASPX 页面的头部定义了一个 javascript 函数:

<script type="text/javascript" >
function bdScheduler() {
var CanRun = '<%= ScheduleCheck() %>';
if ('Success' == CanRun) {
bcal = window.open('ProjSchedBckwdCalc.aspx?po_rec=<%= lblpodate_R.Text %>', '', 'width=650px, height=750px');
} else {
alert(CanRun);
}
}
</script>

ScheduleCheck() 是在我的代码后面定义的一个函数,它按预期检查依赖性并返回一个字符串,指示页面“ProjSchedBckwdCalc.aspx”是否可以完成其工作。如果“成功”,那么我们会在所需位置弹出一个窗口,并向其传递当前页面标签中的值。否则,我们会收到从 ScheduleCheck() 返回的消息。

我从常规 anchor 标记的 onclick 事件中调用它:

<a href="#" onclick="bdScheduler();" >Backward Scheduler</a>

发布的代码在当前版本和之前的几个版本的 Firefox、Chrome 和 IE 中适用,但我收到用户报告,该按钮没有任何作用。我检查了一下,它们都使用 Chrome(与我的测试机上的版本相同),控制台显示浏览器看不到 bdScheduler()

我的问题分为两部分:为什么某些 Chrome 安装在相同的版本中处理此问题的方式不同?我可以更改什么才能使其不仅表现一致,而且运行所需的功能并检查何时运行?

编辑:渲染代码:

    function bdScheduler() {
var CanRun = 'Success';
if ('Success' == CanRun) {
bcal = window.open('ProjSchedBckwdCalc.aspx?po_rec=12/23/2013', '', 'width=650px, height=750px');
} else {
alert(CanRun);
}
}

最佳答案

您的代码没有任何问题( http://jsfiddle.net/N3Unt/6/ ),我已经在三台不同的 Mac 上、Windows 7 和 8 以及可用的 FF/IE 上的 Chrome 中进行了测试。

您始终必须做的是确保加载所有代码并且不缓存任何内容。执行“onclicks”的正确且更现代的方法是使用称为事件处理的解耦模式

document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('yourOnClickLink');

// onClick's logic:
link.addEventListener('click', function() {
var CanRun = '<%= ScheduleCheck() %>';
if ('Success' == CanRun) {
// Warning, bcal becomes global using this code (ANTIPATTERN)
bcal = window.open('ProjSchedBckwdCalc.aspx?po_rec=12/23/2013', '', 'width=650px, height=750px');
} else {
alert(CanRun);
}
});
});

这可以确保所有内容都正确加载,并且您的页面可以异步加载。为什么不灰显任何连接到事件处理程序的链接并在加载 DOM 时启用它,啊,太有趣了:)

关于javascript - Chrome 特定的 Javascript 范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com