您可以使用document.execCommand('selectAll');
。但是,如果用戶滾動頁面,則會顯示覆制/粘貼菜單。
這是我用:
function trySelect(el, evenInactive, select_ios) {
var select = function() {
try {
if (mojo.isTouch && select_ios && core.iosDevice && mojo.isInput(el) && document.execCommand) {
document.execCommand('selectAll');
} else {
el.select();
}
} catch (e) {
}
};
if (el && el.select && !el.disabled && (!el.readOnly || el.selectReadOnly) && mojo.isInput(el)) {
if (evenInactive || mojo.activeElement() === el) {
if (mojo.isTouch && core.webkitVer) { // http://code.google.com/p/chromium/issues/detail?id=32865
setTimeout(select, 0);
} else {
select();
}
}
}
}
引用一些內部功能:
- mojo.isTouch - 真實的觸摸設備
- core.iosDevice - 真正的iOS設備
- mojo.isInput - 測試輸入元素
- mojo.activeElement() - document.activeElemen t
編輯:document.execCommand('selectAll');
不應該使用和el.setSelectionRange(0, el.value.length);
改爲使用。這似乎在iOS5上正常工作......它可能無法在iOS4上工作(我沒有iOS4設備進行測試)。
嘗試http://stackoverflow.com/questions/3272089/programmatically-selecting-text-in-an-input-field-on-ios- devices-mobile-safari – robocat 2012-07-11 07:29:35
是的。感謝Robcat,它的工作解決方案在這裏找到 - http://stackoverflow.com/questions/3272089/programmatically-selecting-text-in-an-input-field-on-ios-devices-mobile-safari – 2012-07-12 10:25:45