繁体   English   中英

弹出窗口在asp.net和vb.net网页上不起作用

[英]Popup not working on asp.net and vb.net web page

我已经从以前的基于asp.net和vb.net的开发人员那里接过了一个Web应用程序

我正在尝试使用JavaScript创建一个简单的弹出窗口,但是该弹出窗口不起作用。

asp.net代码是

<a class="hover-glow" data-placement="bottom" rel="tooltip"
    title="change status" 
    data-bind="attr: { 'href':'update-status_popup.aspx?i=' 
    + Id + '&c=' + StatusId }">
    <i class="icon icon-random"></i>
</a> 

链接在其他页面上打开。 当打开链接时,它也从数据库中获取ID。

现在的要求是在弹出窗口中打开链接。

我创建了一个JavaScript函数调用popup()。 代码如下:

<script type="text/javascript" charset="utf-8">
    function popup() {

        var url = 'update-status_popup.aspx?i=' + Id + '&c=' + StatusId; 
        window.open(url);

    }
</script>

并按如下方式编辑html代码:

<a class="hover-glow" data-placement="bottom" rel="tooltip"
    title="change status"
    databind = "attr: { 'href = javascript: popup()' }">
    <i class="icon icon-random"></i>
</a>

当我单击链接时,没有任何反应。

我也尝试过:

<a class="hover-glow" data-placement="bottom" rel="tooltip"
    title="change status" onclick ="javascript: popup()">
    <i class="icon icon-random"></i>
</a>

和:

<a class="hover-glow" data-placement="bottom" rel="tooltip"
    title="change status" href ="javascript: popup()">
    <i class="icon icon-random"></i>
</a>

结果是一样的。

弹出窗口不得禁用父屏幕。

该网站正在使用另一个由colorbox弹出的窗口,它会禁用屏幕。

感谢您的善意回应。

似乎在popup()JavaScript函数中构建查询字符串时可能会遇到问题 您应该做的是将此任务分为两个步骤:

  1. 获取Window.Open首先工作(不带查询字符串):

     <a class="hover-glow" data-placement="bottom" rel="tooltip" title="change status" href="javascript: popup()"> <i class="icon icon-random"></i> </a> <script type="text/javascript" charset="utf-8"> function popup() { //var url = 'update-status_popup.aspx?i='+Id+'&c='+StatusId; var url = 'update-status_popup.aspx'; window.open(url); } </script> 
  2. 然后,一旦popup()函数起作用,就构建动态查询字符串 有多种方法可以解决此问题。 请在此处参考答案: 如何传递查询字符串变量?

我认为弹出功能不起作用。 您可能要查看浏览器控制台窗口,然后查看错误是什么。

您可以尝试将所有js放在href中。

data-bind="attr: { 'href': 'javascript: window.open(\'update-status_popup.aspx?i=' + Id + '&c=' + StatusId + '\')' }" 

或具有将url作为参数的通用弹出功能。

data-bind="attr: { 'href': 'javascript: popup(\'update-status_popup.aspx?i=' + Id + '&c=' + StatusId + '\')' }" 

  function popup(url) {

        window.open(url);

    }

我认为Id和StatusId是服务器变量,并且在客户端不可用。

要实现“弹出窗口”(而不是新的浏览器选项卡),则应考虑实现jQuery.UI Dialog 这是显示如何实现的答案的链接:

如何在jQuery UI对话框中显示IFRAME

这里是jQuery UI对话框文档的链接: https : //jqueryui.com/dialog/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM