我正在尝试将DOMRange(表示来自Cocoa WebView的用户选择)与当前在该视图中呈现的原始HTML源同步,作为一种Dreamweaver-split-editor:
我的第一个想法是获取DOMRange对象的startContainer
和offset
并从那里向上走DOM树,累积整个字符偏移量直到body标签。
不幸的是,这项任务存在一些问题:
<p>some<div>target</div>text</p>
中的 target 的4个字符)和normalize似乎没有让这更容易。一线希望是HTML5指定了一个标准的解析算法来处理无效的HTML(WebKit已经采用了它),所以理论上应该可以使用现成的HTML5解析器来生成相同的树。作为WebKit - 对吧?
这是我能找到的最类似的现有问题,但问题略有不同:
Getting source HTML from a WebView in Cocoa
答案 0 :(得分:0)
你的问题#1实际上并不是那么糟糕;你可以关闭JS解释。
查看QWebSettings::JavascriptEnabled
,或者在加载任何html之前将其删除:
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, false);
这应该让你的DOM不被JS破坏。祝你好运!