弹出窗口无法在asp.net和vb.net网页上工作

Popup not working on asp.net and vb.net web page

本文关键字:net vb 工作 网页 asp 窗口      更新时间:2023-09-26

我已经从以前的开发人员那里接管了一个基于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>

结果是一样的。

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

该网站正在使用另一个弹出的彩色框禁用屏幕。

感谢您的友好回应。

您可能在popup()JavaScript函数中构建查询字符串时遇到问题。你应该做的是把这个任务分成两个步骤:

  1. 获取窗口。首先打开工作(不带查询字符串):

    <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对话框。这里有一个链接,显示了如何实现它:

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

这里有一个指向jQuery UI对话框文档的链接:https://jqueryui.com/dialog/