我已经在位于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的行为代码?
答案 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弹出文件后加载,然后它会覆盖原始行为以取代我的。
我不知道这是否正确,但对我有用。
如果其他人能够为我提供程序化的解决方案并且比上面更好,请告诉我。