2014-01-17 30 views
2

之間我有一個小(大)的問題與功能的ToString()。 我有一個字符串,其中包含一個SVG折線,我需要得到「點」屬性。 我試過用myPoly.toString(),但在所有情況下,如果我在Firefox或IE中運行我的應用程序,我會收到不同的答案。 在Firefox中,我將它正確接收到的值寫入SVG,在IE中,點字符串在數字中進行轉換。的toString()的工作方式不同Firefox和IE

實施例:

火狐

折線ID = 「1191」 點=「303270.685842807,4628092.26231488 303132.683184,4628154.95824449 303058.00286968,4628191.46425108 303006.318032042,4628217.33599697 302959.834485566,4628250.84303829 302913.412651264,4628286.5711075 302804.378175552,4628374.03209193 302771.994016706 ,4628406.03998642 302741.241605215,4628436.89177469

IE

折線ID = 「1191」 點=「303271,4.62809e + 006 303133,4.62816e + 006 303058,4.62819e + 006 303006,4.62822e + 006 302960,4.62825e + 006 302913,4.62829e + 006 302804,4.62837e + 006 + 302772,4.62841e 006 302741,4.62844e + 006

我怎樣才能使轉型?

謝謝。亞歷山德拉。

+0

IE舍入,而'e'只是指數。我不確定你可以防止這種情況,這只是IE將路徑串起來的方式,但它們是相同的數字,浮點數並不那麼精確。 – elclanrs

+1

您確定a)兩個瀏覽器使用相同版本的代碼而不是緩存的b)「轉換」不僅是您用來顯示字符串的任何控制檯的功能嗎? – ben

+0

兩個輸出真的不同。所以我的應用程序在IE中無法正常工作。我要比較點,爲什麼有問題的輸出是不同的?指數表示是有效的,在Firefox兩個相等的點是IE :( – alisandre

回答

0

的SVG多邊形(和路徑)的字符串值被返回不同betweeen基於位置的空間和逗號的瀏覽器。通過indexOf解析將無法工作cross = browser。 當我們使用點列表時,多邊形點是跨瀏覽器的consitent。然後,當比較x,y值時,您可以舍入到您的應用的'安全'小數位...我已經使用4.

var polyPoints=myPolygon.points 
var n=polyPoints.numberOfItems 
for(var k=0;k<n;k++) 
{ 
    var xy=polyPoints.getItem(k) 
    var x=xy.x 
    var y=xy.y 
// ... 
} 
+0

我非常感謝弗朗西斯!!!!我來試試你的代碼明天早上G。 如果它能正常工作,我會檢查你的答案是否正確,然後寄給你一盒西西里亞茴香! :) – alisandre

相關問題