Popup不在asp.net和vb.net网页上工作

时间:2014-04-23 14:06:28

标签: javascript asp.net vb.net popup query-string

我接管了一个基于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的另一个弹出窗口来禁用该屏幕。

感谢您的回应。

3 个答案:

答案 0 :(得分:1)

您的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()函数正常工作,构建动态查询字符串。有很多方法可以解决这个问题。请参阅此处的答案:How to pass a query string variable?

答案 1 :(得分:1)

我认为弹出功能不起作用。您可能希望查看浏览器控制台窗口并查看错误。

您可以尝试将所有j放入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是服务器变量,在客户端不可用。

答案 2 :(得分:1)

要实现“弹出窗口”(不是新的浏览器选项卡),您应该考虑实现 jQuery.UI对话框。以下是显示如何实现它的答案的链接:

How to display an IFRAME inside a jQuery UI dialog

这是jQuery UI Dialog文档的链接:https://jqueryui.com/dialog/