
解决jQuery get加载弹窗后获取弹窗自身URL地址的问题
使用jQuery的$.get()方法加载弹窗页面时,直接获取URL会返回加载弹窗的页面地址,而非弹窗本身的地址。 为了解决这个问题,我们可以通过将弹窗URL中的参数作为全局变量来传递。由于window.eval()的特性,弹窗加载的JS文件会在弹窗页面所属的全局环境中执行,因此只需将参数存储为全局变量即可在弹窗内访问。
以下是一个改进的代码示例,演示如何将URL参数存储为全局变量,并在弹窗加载的JS文件中访问:
$.get('./addOrEdit.html?id=100', function (data) { // 将URL参数存储为全局变量 window.id = 100; // 根据实际URL参数修改 let info = data, oppoBox = $('#oppoBox'), title = $.trim(obj.attr('atitle')); if (info.length) { $('#oppoInfo').html(info); $('#oppoBg').css({'height': $(document).outerHeight() + 'px'}); oppoBox.css({'width': $(document).outerWidth() * 11 / 18 + 'px'}); let top = $(window).height() / 18, height = $(window).height() - top * 2; oppoBox.css({ 'left': ($(document).outerWidth() - oppoBox.outerWidth()) / 2 + 'px', 'top': top + 'px', 'height': height + 'px', 'overflow': 'hidden' }); $('#oppoTitle').text(title); $('#oppoInfo').css({ 'height': height - parseInt($('#toolBar').css('lineHeight')) - parseInt($('#oppoInfo').css('paddingTop')) - parseInt($('#oppoInfo').css('paddingBottom')) + 'px' }); $('#oppoBg,#oppoBox').removeClass('hide'); // 在弹窗加载后,访问全局变量获取URL参数 console.log("弹窗ID:", window.id); // 此处可以根据需要使用window.id // 根据需要在此处添加获取完整URL的逻辑,例如: // let currentUrl = window.location.href; // console.log("弹窗完整URL:", currentUrl); }});
通过将id参数存储在window.id全局变量中,addOrEdit.html页面加载的JS文件就可以访问到这个参数值,从而间接获取弹窗的URL信息。 请注意将window.id = 100;中的100替换为实际的URL参数值,并根据需要添加获取完整URL的逻辑。 这种方法避免了直接依赖window.location.href获取URL的局限性。
以上就是jQuery get加载弹窗后,如何获取弹窗自身的URL地址?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1502558.html
微信扫一扫
支付宝扫一扫