2017-02-17 52 views
2

我正在尝试查找哪个JavaScript将“display:inline”应用于图像元素。你可以通过附加的图片中看到,“显示:无”是越来越重写,但我不知道在哪里“显示:内联”是来自:查看哪个JavaScript文件正在将元素应用于元素

enter image description here

源是有许多的PHP文件。 js文件。我试过在我的Chrome开发人员工具中使用断点,但在重新加载页面时会丢失它们。任何想法如何可以发现应用“display:inline”的JS代码?

+2

它来自直接写入元素HTML的'style'属性(即'

')。这就是'element.style'部分的含义。 –

+1

@ScottMarcus:这也是通过'element.style.display =“inline”'所做的更改显示的地方。 –

+0

@Scott这也是我的想法,但元素中没有这样的内联样式。这就是为什么我相信它必须通过JavaScript来应用。 –

回答

5

这个工作对我来说在Chrome:

  1. 打开页面
  2. 右击元素,然后选择检查元素
  3. 在DOM视图,DOM树
  4. 右键单击该元素
  5. 在菜单底部(对我来说)选择Break On>属性修改
    (稍后,当您想删除它时,它在DOM断点下列出)
  6. 如果修改已经发生了,打刷新

当我做到这一点,断点停止代码行的元素(甚至在页面刷新)上设置.style.display = "inline"的。

我的元素是由标记定义的,而不是稍后由代码添加的,所以如果您的代码稍后通过代码添加,那么DOM断点可能无法在页面刷新中存活。

如果DOM断点生存出于某种原因页面刷新,但该元素被标记定义,则:

  1. 修改页面标记,以便立即结束标记后元素的,你有<script>debugger;</script>,像这样:

    <div>This is the element</div> 
    <script>debugger;</script> 
    <div>The next element...</div> 
    

    (通常情况下,我们不乱扔垃圾script TA gs遍布我们的HTML,但这是一个调试会话。)

  2. 开放开发工具

  3. 打开的页面;它将停止在debugger上述声明

  4. 切换到DOM查看,发现该元素存在(它会在右下角附近)

  5. 右键单击它并选择打破>属性修改

  6. 击中恢复箭头,让事情继续

这应该让你设置在添DOM断点抓住修改它的东西。

最后:如果元素是通过脚本代码添加的,您必须找到添加它的代码(blech)并在添加后立即设置一个断点,以便您可以使用上面第二个列表中的步骤#4 。

+1

即使这不能解决OP的问题,这也是一种没有人可以使用的调试技术。 –

+0

我试过这个。问题是当我刷新页面时,Break On>属性修改被取消选中,因此它不会因为它应该中断。任何方式来解决这个问题? –

+0

@GTSJoe:我想到了一个方法,我刚刚添加了一个方法。看到上面的新位。 –

相关问题