弹出菜单打开新选项卡,而不是在同一选项卡中继续
Pop up menu opens new tab instead of continuing in the same tab
我有一些代码,我点击弹出菜单按钮,然后出现菜单,当我在菜单元素上点击下一个。点击()时,它试图用菜单选项中的AJAX链接打开新的选项卡,但我想像用户一样使用它,然后它会在同一个选项卡中完成任务,而不打开新的。有没有办法让浏览器认为用户点击了那个?
HTML
<a class="_54nc" href="/ajax/groups/members/remove.php?group_id=xxx&uid=xxx" rel="dialog-post" role="menuitem">
<span>
<span class="_54nh">Remove from group</span>
</span>
</a>
JS
array = $('a._54nc').get();
array[0].click();
因此,基本上,如果用户点击该链接,就会显示同一选项卡上的下一个弹出窗口,但当我用javascript这样做时,它试图在新选项卡中打开AJAX链接,但以失败告终。
如果您在浏览器的选项卡中加载了内容脚本,那么您可以创建一个鼠标事件,然后触发该事件来复制用户单击dom 的效果
/**
* create mouse event and dispatch
* param {string} type event name
* param {DOM Element} el DOM element on which event will trigger
*/
function triggerMouseEvent (type, el) {
var myEvent = new MouseEvent(type, {
'view': window,
'bubbles': true,
'cancelable': true
});
el.dispatchEvent(myEvent);
}
var array = $('a._54nc').get();
var element = array[0];
triggerMouseEvent('mousedown', element);
triggerMouseEvent('mouseup', element);
第二个解决方案
若你们想在同一个窗口中打开url,那个么你们可以更改窗口的位置。(正如@some非描述性用户在评论中指出的那样)
var uri = element.getAttribute('href');
self.location.href = uri;
您可以做的另一件事是在具有相同url的页面中插入iframe。
var myFrame = '<iframe src='+uri+' width="'+window.innerWidth+'" height="'+window.innerHeight+'" style="position:absolute;"></iframe>';
$('body').append(myFrame);
并且您可以隐藏dom 的其余部分
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- 单击上一个或继续按钮时更改选项卡样式
- 即使在另一个选项卡中,也要继续使用Javascript动画
- 停止滚动页面,更改选项卡,继续滚动
- 弹出菜单打开新选项卡,而不是在同一选项卡中继续
- 显示带有选项的弹出窗口“;继续购物”;以及“;转到购物车”;,将产品添加到购物车后,在Magento
- Angular bootstrap-select在选择之后继续显示选项
- 当我们更改页面时,继续使用相同的显示和隐藏选项
- 如何在选项卡URL更改后继续从扩展发送消息内容脚本