【问题标题】:Open a new tab and focus on it in chrome with a bookmarklet打开一个新标签,并在带有书签的 chrome 中关注它
【发布时间】:2014-10-14 21:15:05
【问题描述】:

我想做的是从页面中抓取一些数据,然后在新选项卡中打开另一个页面,然后将抓取的数据插入新页面中包含的表单中。

我最接近打开新标签的是:

function openNewBackgroundTab(){
var a = document.createElement("a");
a.href = "http://www.example.com";
var evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                            true, false, false, false, 0, null);
a.dispatchEvent(evt);
}    

但是,正如函数名所说,选项卡是在后台打开的,并且没有聚焦。

有没有办法在 chrome 中使用 js 小书签?

【问题讨论】:

标签: javascript google-chrome


【解决方案1】:

我有一个类似的任务,我必须在 Silverlight 应用程序中打印表单。由于打印是 Silverlight 很糟糕,我使用了一些 JavaScript 打开一个新窗口并向其写入表单。

它不是一个标签,而是一个窗口。也许有帮助:

var print = function (data) {
    var html = 'This is a test';
    var newWindow = window.open('');
    newWindow.document.write('<html><head><title>New TAB</tit' + 'le>');
    newWindow.document.write('</he' + 'ad><body>');
    newWindow.document.write(html);
    newWindow.document.write('</bo' + 'dy></ht' + 'ml>');
    newWindow.document.close();
    newWindow.focus();
};

print();

此外,如果您继续使用您的方法,IE 在触发锚点上的点击事件方面有一些特殊性。您可能需要检查this 或类似的内容。

【讨论】:

  • 问题是我需要在现有页面中使用表单,而不是打印新的......
  • 您可以在新打开的窗口中呈现表单。在我的示例中,窗口仅包含字符串 'This is a test',但您可以将其替换为任何 html。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 2019-09-04
相关资源
最近更新 更多