Chrome有一个功能就像firebug一样,它在一个元素的变化中不知所措。但是,Chrome只会破坏3种类型的更改,Firebug不再适用于新版本的Firefox,并且要替换的工具无法中断对元素的更改。
我已经尝试了所有三个针对chrome的中断事件,没有人进入调试器。我有一个选择列表,如:
<select id="someid">
<option value="">Choose</option>
<option value="12"> Some Text with bad formatting and <span>in it for some reason</span>
<option value="13"> Other text with <span>etc</span> in it</option>
</select>
我发现的事情是,加载时的某些JS会在加载后用有效的html替换所有错误的选项文本。为什么magento2会这样做?我不知道。但这对我来说是一种痛苦,并且很可能与核心功能有关,因为跨度有产品和更多产品。
我将文本附加到选项中,但它会被其他替换过程删除。我最后写了setTimeout来检查每1000ms是否有更新的选项文本,并添加我的更改。但这不是一个好的解决方案,因为多种原因导致容易中断,而且速度慢。
我的问题是,在这个巨大的软件程序中,我从未写过如何轻松找到任意javascript在加载时更改选项文本? Chrome不会在加载时持续存在,即使我快速指向Mcgee并在启动时点击f8暂停加载,然后找到该元素,然后将其设置为在更改时中断,它实际上并不会中断。
所以我尝试了Mutation Observers,但后来通过另一个堆栈溢出回答发现别人的问题,你永远不能使用变异观察者看到调用堆栈。所以现在我正在看watch(),但我怀疑它会解决我的问题吗?
为什么不打破对元素或它的孩子或它的文本的更改是一个默认的易于使用的功能这是开发中的常量问题,以找出数千和数千行中的哪些代码实际上导致了您不想要的行为,或者您希望在运行后运行其他javascript。
答案 0 :(得分:0)
我没有评论的声誉,但根据你所说的话:
我发现的事情是,加载时的某些JS会在加载后用有效的html替换所有错误的选项文本。为什么magento2会这样做?
我在想,如果magento没有显示原始输入的功能吗?也许它是你问题的根源......
https://magento.stackexchange.com/questions/569/how-to-escape-output-data