2016-11-03 11 views
2

私はこのコードでのWebViewにメニューアイテムを追加しよう:WebKitContextMenu(javascript、gjs)にメニュー項目を追加するには?

my_webview.connect('context-menu', Lang.bind(this, function(webview, c_menu, event, hit_test){ 
     var action = new Gtk.Action({name:"some_name", label:"Some Label"}); 
     action.connect('activate', Lang.bind(this, function(){ 
      print("Your Menu Item !"); 
     })) 

     var m_item = new WebKit.ContextMenuItem(action); 
     c_menu.append(m_item); 
     m_item.show(); 
     return false; 
    })); 

エラー「セグメンテーションフォールト(コアダンプ)」とアプリ出口 のコンテキストメニューにメニューアイテムを追加するための正しい方法は何ですかWebView?

答えて

2

小補正:WebKit.ContextMenuItemは、カスタムのコンストラクタではなくnew WebKit.ContextMenuItemで呼び出される通常のGObjectのコンストラクタを持っているので、

var m_item = WebKit.ContextMenuItem.new(action); 

これは、控えめに言って混乱して、それはです。セグメンテーションフォールトは、コンテキストメニュー項目がアクションを受け取らない場合にWebKitが窒息することによるものです。しかし、GJSがここで何が起こっているかを少なくとも警告してくれればよいでしょう。

GJS hereのバグレポートを開きました。

関連する問題