iTop,在哪里实现OnChangeJavaScript?

iTop,在哪里实现OnChangeJavaScript?,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,iTop fourms是非常不活跃的,我被卡住了,所以我想我应该在这里问一下是否可以。我试图在iTop组织选择栏的更改中添加我自己的javascript 以下是iTop的链接(如果需要): 关于我的iTop论坛问题的额外信息,尚未有答案: 所以iTop是一个使用php、html、js和css制作的软件,但我对php不熟悉,所以我遇到了一点问题。我正在尝试实现一段javascript,它将根据组织将css的顶部栏更改为不同的颜色,我制作了一个独立于iTop的小型原型,它工作得非常完美。但是,我无法

iTop fourms是非常不活跃的,我被卡住了,所以我想我应该在这里问一下是否可以。我试图在iTop组织选择栏的更改中添加我自己的javascript

以下是iTop的链接(如果需要):

关于我的iTop论坛问题的额外信息,尚未有答案:

所以iTop是一个使用php、html、js和css制作的软件,但我对php不熟悉,所以我遇到了一点问题。我正在尝试实现一段javascript,它将根据组织将css的顶部栏更改为不同的颜色,我制作了一个独立于iTop的小型原型,它工作得非常完美。但是,我无法将onchange方法与javascript一起添加,因为主用户界面是使用php动态生成的。我已经尝试了很多方法来实现javascript,但都没有成功。以下是iTop的一些图片和帮助代码:

这张图片显示了iTop的inspect元素,以及我如何相信jquery-1.7.1.min.js可能是放置代码的正确位置

所以我试着进入这个文件,在我的Java脚本代码中复制和粘贴,但在某些位置它没有影响,在函数{…}中,它会导致iTop只显示一个空白页,我可能是完全错误的,但从我所看到的来看,这个文件似乎是我要编辑以得到我想要的

以下是我试图实现的javascript:

var changeStyle = function(){

    //HTML
    var selectedValue = document.getElementById("org_id").value;

    //CSS
    var trimColor = document.querySelector("#top-bar");

    //BT
    if(selectedValue=="3"){
        //change banner colour
        trimColor.style.backgroundColor= "#3498db";
    }

    //Bell Aliant
    else if(selectedValue=="27"){
        //change banner colour
        trimColor.style.backgroundColor= "#f1c40f";
    }

    //Bell Canada
     else if(selectedValue=="26"){
         trimColor.style.backgroundColor= "#e74c3c"; 
    }

    else
        trimColor.style.backgroundColor="#ecf0f1";
}
以下是它在我的非iTop版本的HTML、JS和CSS中工作的一些图片:


虽然我不认为这是最好的解决方案,但我已经在jquery-1.1.1.min.js中输入了以下代码,如图所示

我已经达到了预期的效果,修剪现在随着组织的改变而改变,但是这不是我一直在寻找的完美解决方案,速度有点慢,但至少在我看来,你不会感到恼火。任务暂时完成


这是一个老问题,但无论如何我都会回答,因为对于iTop的最新版本,答案仍然可以

要在页面中注入一些JS,您必须使用iPageUIExtension::GetNorthPaneHtmliTopWebPage$oPage API,该API允许您访问iTopWebPage对象。然后,您可以使用各种公共方法,如iTopWebPage::add_ready_script$sScript,将$sScript注入所有后台页面。此外,一旦DOM就绪,脚本将被执行

你可以找到一个例子

注意:您将需要进行自己的iTop扩展,请检查如何进行扩展

class PageUIExtension implements iPageUIExtension
{
    /**
     * @inheritdoc
     */
    public function GetNorthPaneHtml(iTopWebPage $oPage)
    {
        ...

        $oPage->add_linked_script(utils::GetAbsoluteUrlModulesRoot() . 'molkobain-handy-framework/common/js/handy-framework.js');
    }
}