Drupal - OpenLayers - 改变弹出行为

时间:2014-03-11 09:45:16

标签: javascript drupal drupal-7

我已经在位于openlayers / plugins / behavior的模块中直接修改了弹出行为js文件:openlayers_behavior_popup.js。

它按照我的预期工作正常,但我不想在原始模块中进行自己的修改,我想将它添加到我现有的模块中,但我不知道如何做到这一点。

我希望网站不要采取openlayers / plugins / behavior的行为,而是使用我自己模块中的弹出行为代码。

Drupal.openlayers.addBehavior('openlayers_behavior_popup', function (data, options) {
    // normal
    var popupSelect = new OpenLayers.Control.SelectFeature(layers,
        {
    // my change here!!
        },
        onUnselect: function(feature) {
    // normal
    }
    }
  );
});

如何更改openlayers的行为代码?

1 个答案:

答案 0 :(得分:0)

我已通过在自定义模块中加载修改javascript文件解决了我在此主题上的问题,如下所示:

function mycustom_openlayers_init() {   
     // you might want to load only at some specific page
     // if you want so, please have a look to function arg() of drupal
     // place condition before loading the js file below

     drupal_add_js ( drupal_get_path ( 'module', 'mycustom_openlayers' ) . '/js/openlayers_behavior_popup.js', array(
                'weight' => '9999',
              ) );  
}

通过指定 weight 的设置更大,我的javascript在加载原始openlayers弹出文件后加载,然后它会覆盖原始行为以取代我的。

我不知道这是否正确,但对我有用。

如果其他人能够为我提供程序化的解决方案并且比上面更好,请告诉我。