2014-03-27 23 views
6

我想點擊按鈕並從輸入中自動選擇文本,然後我想讓android用戶看到「複製窗口」複製選定的文本。用javascript選擇文本並顯示Android的複製窗口

enter image description here

<button id="toggler">Click me</button> 
<input id="copy_me" type="text" value="Stack Overflow" /> 

<script> 
$('#toggler').click(function() { 
    $('#copy_me').select(); 
    // Some code to fire 
}); 
</script> 
+0

這個對話框是本地的,如果你在每個TextView,HTML中選擇文本(這是可選擇的),它會自動出現......你只需要長按即可。或者你想在你的應用中實現什麼,你需要這種場景?! – longilong

+0

這是正常的網頁,我想最簡單的方法來複制一些文本(從移動設備)。 –

回答

2

正如評論上面提到的,我不會建議改變的Android/IOS的​​複製粘貼功能。通常,用戶熟悉的操作系統 - 複製 - 粘貼功能。你只需要確保你的文本是可選的。

但是,你可以嘗試文本複製到「剪貼板」如下所述:How do I copy to the clipboard in JavaScript?,但我從來沒有試圖與移動設備和不知道它的工作原理

+1

這種方法使用閃光燈。當我選擇文本時,android用戶需要重新選擇該文本進行復制。我想要一些JavaScript解決方案來選擇像用戶一樣的文本並顯示「複製欄」。 –

+0

upps,我發佈了錯誤的討論。我只是更新了我的答案..希望它可以幫助,如果沒有的話:我是出於想法 – longilong

1

我不知道這個版本的Android可以工作,但你應該嘗試使用的是Selection Object。我在4.3上試過了,它似乎可以滿足你的需求。

作爲一個說明雖然頁面指定以下警告:

這是一個實驗性的技術。

由於此技術的規範尚未穩定,因此請檢查兼容性表以查找適用於各種瀏覽器的正確前綴。另請注意,隨着規範的變化,實驗技術的語法和行爲在未來版本的瀏覽器中可能會發生變化。

不幸的是,上面提到的兼容性錶鏈接不會導致任何地方。這裏有一個Browser compatibility table for window.selection的鏈接,不幸的是它也沒有用。

這裏有一個簡單的例子:

HTML:

<strong>Text to select</strong> 
<button onClick="selectText();">Select</button> 

的Javascript:

function selectText() 
{ 
    //select the element you want 
    var strongs = document.getElementsByTagName("strong"); 
    //get the selection object 
    var selection = window.getSelection(); 

    if (selection.rangeCount > 0) 
    { 
     //clear current selection 
     selection.removeAllRanges(); 
    } 

    for (var i=0;i<strongs.length;i++) 
    { 
     //loop over the items and add them to the selection object 
     var range = document.createRange(); 
     range.selectNode(strongs[i]); 
     selection.addRange(range); 
    } 
} 

我希望幫助。

+0

感謝您的好答案。我嘗試了與android 4.2.2,但我沒有看到結果。 –

+0

我剛剛注意到你的問題是來自輸入的文本,我的例子是針對div中的文本。你有沒有用輸入或div來試試它?我會考慮用輸入做同樣的事情。 – Faris

+0

我試過你的例子(強大的容器)。 –

相關問題