2010-09-22 14 views
6

मेरी समस्या this के समान है, लेकिन मुझे फ़ायरफ़ॉक्स में जावास्क्रिप्ट के साथ चयन के दाहिने तरफ के निर्देशांक प्राप्त करने का एक तरीका चाहिए।जावास्क्रिप्ट के साथ चयनित पाठ के अंत के निर्देशांक कैसे प्राप्त करें?

var range = window.getSelection().getRangeAt(0); 
var dummy = document.createElement("span"); 
range.insertNode(dummy); 
var box = document.getBoxObjectFor(dummy); 
var x = box.x, y = box.y; 
dummy.parentNode.removeChild(dummy); 

यह मैं चयन की शुरुआत के निर्देशांक देता है:

alt text

कोड मैं दूसरे पद से मिला निम्नलिखित है: मैं दिखाने के लिए मैं क्या मतलब है एक छोटा सा उदाहरण बना दिया । क्या चयन के अंत के निर्देशांक पुनर्प्राप्त करने का कोई तरीका है?

उत्तर

9

हां। वह बिट काफी सरल है: आपको चयन से प्राप्त श्रेणी पर collapse(false) पर कॉल करने की आवश्यकता है। ध्यान रखें कि document.getBoxObjectFor() अब मोज़िला से हटा दिया गया हो, तो आप डमी तत्व के getBoundingClientRect() बजाय विधि की जरूरत है: तेजी से 3 सेकंड के लिए किया जा रहा

var range = window.getSelection().getRangeAt(0); 
range.collapse(false); 
var dummy = document.createElement("span"); 
range.insertNode(dummy); 
var rect = dummy.getBoundingClientRect(); 
var x = rect.left, y = rect.top; 
dummy.parentNode.removeChild(dummy); 
+0

+1। मुझे नहीं पता था * getBoxObjectFor() * पहले ही हटा दिया गया था। –

+1

मुझे याद आया कि कुछ महीने पहले MooTools तोड़ दिया क्योंकि यह 'getBoxObjectFor() '(एक विधि जिसे मैंने कभी भी उपयोग नहीं किया है) के लिए एक स्नीफ का उपयोग करके मोज़िला का पता लगा रहा था। –

+0

पतन (झूठा) बिल्कुल वही है जो मैं खोज रहा था। बहुत बहुत धन्यवाद। आपने मेरी बहुत मदद की। – Bob

0
var r = range.cloneRange(); 
r.collapse(false); // collapses range clone to end of original range 
r.insertNode(dummy); 
// document.getBoxObjectFor(dummy), etc. 
संबंधित मुद्दे

 संबंधित मुद्दे