2011-07-02 26 views
0

例呈現的文本之間的距離:在「左文」和「右」之間的距離,上述<span style="padding-right:10px;">left text</span><span>right</span>編程找到一個HTML頁面

他們已經被瀏覽器中呈現後,將10px的。

因此,我的應用程序將採取一個html文件和2個變量(html文件中存在的字符串),然後查找2個字符串之間的水平距離(以像素爲單位?)。

可能嗎? 我想我將不得不修改像webkit這樣的開源引擎來實現這一點。對?還是有更簡單的方法?解析CSS規則的頁面......是否有效?

如果它的webkit,那麼它會有多難?我需要掌握哪些語言?我只知道php(位C,C#,java)

謝謝

+0

在PHP中的CSS解析器/ HTML + CSS渲染器,據我所知。所以你應該使用其他的東西,比如webkit + javascript來解決這個問題。 – hakre

回答

0

使用Javascript。

這樣你就可以找到元素的屬性,然後比較它們以得到它們的距離。

例如,您可以使用javascript來獲取element.left,element.width和element2.left。然後,您可以通過使用element2.left來查找距離 - (element.left + element.width)。

+0

謝謝!這會工作。我從來沒有想過使用JavaScript。不知道如何找回javascript函數返回的值...也許可以將js代碼插入到htmlfile中,在頁面本身輸出距離,通過cutycapt運行文件,然後解析輸出結果。長,但會工作 –

+0

問題:如何獲得javascript元素?我所有的是一個字符串 –

+0

document.getElementById(elementsid); 該ID將如下所示:

0

來自stackoverflow的以下question表明您可以找到元素和文檔左上角(使用javascript和jQuery)之間的距離。

找到兩個元素之間的距離,我會認爲你可以做到以下幾點:

var el1offset = $("#element1id").offset(); 
var el2offset = $("#element2id").offset(); 
var distanceTop = Math.abs(el1offset.top-el2offset.top); 
var distanceLeft = Math.abs(el1offset.left-el2offset.left); 
var distance = Math.sqrt(distanceTop*distanceTop+distanceLeft*distanceLeft); 
相關問題