2

このコードを使用してメニュー項目を Web ビューに追加しようとすると:

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 のコンテキスト メニューにメニュー項目を追加する正しい方法は何ですか?

4

1 に答える 1

2

小さな修正:

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

これは控えめに言っても紛らわしいです。これはWebKit.ContextMenuItem、カスタム コンストラクターがあり、 で呼び出される通常の GObject コンストラクターがないためnew WebKit.ContextMenuItemです。セグメンテーション違反は、コンテキスト メニュー項目がアクションを受信しない場合の WebKit チョーキングが原因です。ただし、GJS が少なくともここで何が起こっているかを警告してくれるとよいでしょう。

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

于 2016-11-18T07:18:19.040 に答える