我正在尝试调试我的 AngularJS 应用程序,其中 display:none 被注入标签,如下所示:
这是 img 标签的显示方式:
<img ng-src="{{clientImage}}" style="margin: 0 0 0 5px;" />
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
<img ng-src="{{clientImage}}" style="margin: 0 0 0 5px; display: none !important;" />
Run Code Online (Sandbox Code Playgroud)
有人可以通过建议我如何跟踪 (display: none !important;) 是如何注入来帮助我的吗?还有什么想法可能会在我的 img 标签中注入它?
注意: - 这个问题只发生在某些浏览器上,而不是所有浏览器上,实际上我已经尝试在相同的浏览器版本上重现该错误,但在两台不同的机器上但失败了。- 我正在使用 Chrome 最新版本进行测试
我知道,有几个帖子几乎有相同的问题,但所有提到的"修复"都不适合我.
但首先,这就是我需要的:我的应用程序中的某些表单必须通过激活编辑模式来启用.如果编辑模式处于活动状态,则每个按钮(保存和中止除外)和页面上的链接都不应该执行正常操作,但是它应该给出一条消息,您必须结束编辑模式.
我的脚本:启动编辑模式的按钮调用:
function startEditMode(selector) {
var disableAction = "return false;";
jQuery("mySelectors").each(function(){
jQuery(this).bind('click', editModeOnClickHandler);
var onClickValue = "";
var onClick = jQuery(this).attr("onClick");
if ( onClick !== undefined ) onClickValue = "" + onClick;
jQuery(this).attr("onClick", disableAction + onClickValue);
});
}
Run Code Online (Sandbox Code Playgroud)
要停止编辑模式,存在一种方法可以反转所有这些.使用的处理程序"editModeOnClickHandler"只显示消息并返回false; 对我的问题并不重要.
所以......在FF和IE8(也在Chrome中)一切正常,但在IE7中却没有.当我在其他帖子中读到时,onClick在IE7中不会通过.attr进行修改.
到处张贴的解决方案:使用事件绑定而不是操纵属性.我希望我能用它!
这就是我无法解决的原因:我试图取消绑定所有处理程序并绑定我自己的处理程序,如上面的代码所示.但这并不妨碍内联onclick被调用.好吧你可能会想,不要使用内联调用..但我的项目使用Primefaces在JSF中编写,其大部分代码都是动态生成的.总而言之,我没有可能阻止内联onclicks.
现在我被卡住了.我必须处理内联onclicks,只能通过插入"return false"来阻止它被调用.在前面,但这似乎不可能与IE7.
有没有人知道IE7的解决方法能够操作onclick属性?再说一次:我不能使用.bind('click'...或.click(因为它们无法阻止原始的内联onclick.
谢谢你的回答!亚历克斯
在你的帮助下编辑我想出来,在IE7中更改内联onclick是可能的this.onclick = ...在这个问题中回答了正确的处理:如何动态更改onClick处理程序?
对于我在这里的具体问题,我找不到合适的解决方案,因为我无法操纵原始的内联onclick值而不会让他们失望.出于这个原因,我改变了我的脚本,因此IE7禁用所有按钮和链接以确保它们不再可点击.可以肯定的是,不要启用太多,也要添加一个类名.
禁用所有尚未禁用的(在循环中调用):
if (!jQuery(this).attr('disabled')) {
jQuery(this).attr('disabled', 'disabled');
jQuery(this).addClass('editmodedisabled');
}
Run Code Online (Sandbox Code Playgroud)
启用我以前禁用的东西:
if (jQuery(this).hasClass('editmodedisabled')) {
jQuery(this).attr('disabled', '');
jQuery(this).removeClass('editmodedisabled');
}
Run Code Online (Sandbox Code Playgroud)
也许这有助于其他人
如何从firebug中找出哪个方法或方法附加到按钮的单击事件处理程序?
这是按钮的代码
<button class="rsmg_button_save ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary ui-state-focus" type="button" role="button" aria-disabled="false" style="display: inline-block;"><span class="ui-button-icon-primary ui-icon ui-icon-disk"></span><span class="ui-button-text">Save</span></button>
Run Code Online (Sandbox Code Playgroud) During some code investigating, I found a html submit button like this:
<button class="btn btn-primary">Create new aicraft</button>
Run Code Online (Sandbox Code Playgroud)
I know somewhere there is javascript code that handeles the button click event. How can I find that javascript code?
与遗留代码接口,我有这样的东西:
Event.observe(some_form, 'submit', [some anonymous function])
Run Code Online (Sandbox Code Playgroud)
我想抓住那个匿名事件处理程序,在Prototype中有一个简单的方法吗?
javascript ×3
events ×2
jquery ×2
angularjs ×1
attr ×1
firebug ×1
html ×1
onclick ×1
prototypejs ×1