特定于Chrome的Javascript范围问题
我在ASPX页面的头部定义了一个javascript函数:特定于Chrome的Javascript范围问题,javascript,asp.net,google-chrome,Javascript,Asp.net,Google Chrome,我在ASPX页面的头部定义了一个javascript函数: <script type="text/javascript" > function bdScheduler() { var CanRun = '<%= ScheduleCheck() %>'; if ('Success' == CanRun) { bcal = window.open('ProjSche
<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>
发布的代码在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);
}
}
你的代码没有问题(),我已经在三种不同的Mac电脑和Windows7&8以及FF/IE上进行了Chrome测试 您必须始终确保加载所有代码,并且不缓存任何内容。执行“onclick”的一种更现代的方法是使用称为eventhandling的解耦模式
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);
}
});
});
document.addEventListener('DOMContentLoaded',function(){
var link=document.getElementById('yourOnClickLink');
//onClick的逻辑:
link.addEventListener('click',function()){
var CanRun='';
如果('Success'==CanRun){
//警告,bcal使用此代码变为全局(反模式)
bcal=window.open('ProjSchedBckwdCalc.aspx?po_rec=12/23/2013','','width=650px,height=750px');
}否则{
警报(可运行);
}
});
});
这可以确保正确加载所有内容,并且页面可以异步加载。为什么不灰显连接到eventhandler的任何链接,并在加载DOM时启用它,啊,太有趣了:)他们是否收到任何错误?
ScheduleCheck()
或lblpodate\u R.text
中的文本是否可能包含一个单引号,用于终止字符串并中断代码?您是否查看了实际呈现的标记以查看代码的外观?按钮是否在表单中?@cannon:在呈现中编辑code@EricHerlitz是的,链接存在于表单中。感谢您的验证并为我指明了正确的方向。结果是sql管理员没有在vb函数运行的sp上为我们的用户授予execute。
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);
}
});
});