Javascript 如何通过代码切换Firefox响应设计视图分辨率
我使用以下代码从基于xul的插件打开firefox响应设计视图Javascript 如何通过代码切换Firefox响应设计视图分辨率,javascript,jquery,firefox,firefox-addon,Javascript,Jquery,Firefox,Firefox Addon,我使用以下代码从基于xul的插件打开firefox响应设计视图 var mytmp = {}; Cu.import("resource://gre/modules/Services.jsm"); Services.prefs.setCharPref("devtools.responsiveUI.presets", JSON.stringify([{name:'tmp1', key: "234x899", width:300,height:300}])); Cu.import("resource:
var mytmp = {};
Cu.import("resource://gre/modules/Services.jsm");
Services.prefs.setCharPref("devtools.responsiveUI.presets", JSON.stringify([{name:'tmp1', key: "234x899", width:300,height:300}]));
Cu.import("resource:///modules/devtools/responsivedesign.jsm", mytmp);
var win = window.bridge.myWindow;
mytmp.ResponsiveUIManager.toggle(win, win.gBrowser.tabContainer.childNodes[0]);
以下是切换分辨率的代码
this.menulist.addEventListener("select", this.bound_presetSelected, true);
/**
* When a preset is selected, apply it.
*/
presetSelected: function RUI_presetSelected() {
if (this.menulist.selectedItem.getAttribute("ispreset") === "true") {
this.selectedItem = this.menulist.selectedItem;
this.rotateValue = false;
let selectedPreset = this.menuitems.get(this.selectedItem);
this.loadPreset(selectedPreset);
this.currentPresetKey = selectedPreset.key;
this.saveCurrentPreset();
// Update the buttons hidden status according to the new selected preset
if (selectedPreset == this.customPreset) {
this.addbutton.hidden = false;
this.removebutton.hidden = true;
} else {
this.addbutton.hidden = true;
this.removebutton.hidden = false;
}
}
},
我试图访问菜单列表并自己执行事件触发器,但无法访问它。如何选择下拉列表?假设响应用户界面已打开
gBrowser.selectedTab.\uu responsiveUI.setSize(320480);
更新:
我想当然地认为您想要设置任意大小,但实际上您询问了预设值。这仍然是一个有效的答案吗?假设响应用户界面已打开
gBrowser.selectedTab.\uu responsiveUI.setSize(320480);
更新:
我想当然地认为您想要设置任意大小,但实际上您询问了预设值。这仍然是一个有效的答案吗?paa的答案确实有效,但它在屏幕预设中创建了一个新的自定义条目,但没有选择现有条目。可以通过在预设的选择ui上触发单击事件来执行此操作 像这样
var win = window.bridge.myWindow;
var i = 3 // index of the preset to be selected
var responsiveUI= win.gBrowser.selectedTab.__responsiveUI;
$(responsiveUI.menulist.children[0].children[i]).trigger('click');
paa的答案确实有效,但它会在屏幕预设中创建一个新的自定义条目,但不会选择现有条目。可以通过在预设的选择ui上触发单击事件来执行此操作 像这样
var win = window.bridge.myWindow;
var i = 3 // index of the preset to be selected
var responsiveUI= win.gBrowser.selectedTab.__responsiveUI;
$(responsiveUI.menulist.children[0].children[i]).trigger('click');
您是否尝试过查看
win
的DOM?也许它就在那里。在开发者工具中打开chrome调试
的情况下,尝试浏览器控制台,查看window.bridge.myWindow
对象的DOM树是否可访问。您是否尝试查看win
的DOM?也许它就在那里。在开发者工具中打开chrome调试
的情况下,尝试浏览器控制台,查看window.bridge.myWindow
对象是否可以访问其DOM树。是否导入jQuery时使用了$
和触发器
?或者美元符号是可用的功能?谢谢分享解决方案,顺便说一句,这有助于未来的用户搜索。这是jquery。但这不是必须的。为什么要将jquery引入插件?它带来了大量的开销。AMO的编辑们不喜欢它。特别是当你把它插入响应窗口时,我不会把它插入响应窗口。正如我所说,我用它来阐述解决方案。您也可以使用本机js触发click函数。您导入jQuery的是$
和触发器吗?或者美元符号是可用的功能?谢谢分享解决方案,顺便说一句,这有助于未来的用户搜索。这是jquery。但这不是必须的。为什么要将jquery引入插件?它带来了大量的开销。AMO的编辑们不喜欢它。特别是当你把它插入响应窗口时,我不会把它插入响应窗口。正如我所说,我用它来阐述解决方案。您也可以使用本机js触发click函数。