iframe键盘按钮按页面加载

时间:2017-10-15 16:39:32

标签: javascript iframe greasemonkey

办公室里有一个运行天气图的屏幕。地图在iframe中运行,并设置为每小时刷新一次。这是代码;

    function yourfunction(){
$a=get_current_user_id();
        update_user_meta( $a, 'field', 'test');
}
add_action('init', 'yourfunction');

在位于iframe的VentuSky地图上,如果用户按下键盘上的“p”,它会隐藏所有菜单,只显示地图(或“演示模式”,如VentuSky所说)。

有什么办法可以让浏览器在每小时刷新一次时自动执行此操作?

1 个答案:

答案 0 :(得分:0)

直接从此代码执行此操作是不可能的,因为出于安全原因,浏览器会禁止从其他域访问iframe。但是你可以使用像Grease Monkey这样的浏览器插件来实现FireFox。

FireFox和Grease Monkey的解决方案:

  1. 安装FireFox和Grease Monkey
  2. 按下GM图标(1)附近的V形符号并选择New User Script(2) enter image description here
  3. 将脚本命名为" ventusky"
  4. 输入名称空间:https://www.ventusky.com/ enter image description here
  5. 将以下代码粘贴到将打开的窗口中:

    // ==UserScript==
    // @name        ventusky
    // @namespace   https://www.ventusky.com/
    // @description trigger p key press in https://www.ventusky.com/
    // @version     1
    // @grant       none
    // ==/UserScript==
    window.onload = function()
    {
        var keyboardEvent = document.createEvent("KeyboardEvent");
    
        keyboardEvent.initKeyEvent(
            "keydown", // event type : keydown, keyup, keypress
            true, // bubbles
            true, // cancelable
            window, // viewArg: should be window
            false, // ctrlKeyArg
            false, // altKeyArg
            false, // shiftKeyArg
            false, // metaKeyArg
            'P'.charCodeAt(0), // keyCodeArg : unsigned long the virtual key code, else 0
            0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
        );
        document.dispatchEvent(keyboardEvent);
    };
    
  6. 注意:它会要求您输入"允许粘贴"当您尝试粘贴代码时。

    按键事件触发代码基于this回答。