Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定于Chrome的Javascript范围问题_Javascript_Asp.net_Google Chrome - Fatal编程技术网

特定于Chrome的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

我在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>
发布的代码在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);
        }        
    });
});