色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 無法復(fù)制

李佳璐1年前7瀏覽0評論

JavaScript是一門廣泛運(yùn)用于Web前端頁面上的編程語言,廣為人知的是JavaScript在處理前端動態(tài)性方面擁有眾多優(yōu)秀的功能。但是,還有一個問題始終困擾著開發(fā)者,那就是JavaScript無法直接復(fù)制內(nèi)容至剪切板。

雖然網(wǎng)頁的復(fù)制功能已經(jīng)相當(dāng)普及,但是從Web頁面上復(fù)制固定的文本到剪切板卻不是一件很容易的事情,因為JS中并沒有提供復(fù)制到剪切板的方式。我們可以嘗試寫一個簡單的函數(shù):

function copyToClipboard(text) {
var input = document.createElement('input');
input.style.position = 'fixed';
input.style.opacity = 0;
input.value = text;
document.body.appendChild(input);
input.select();
document.execCommand('copy');
document.body.removeChild(input);
}

但是,很明顯這個函數(shù)并不能完全實現(xiàn)復(fù)制到剪切板的功能, 因為它只是將內(nèi)容寫到一個輸入框里,點(diǎn)擊“復(fù)制”按鈕,瀏覽器將選中這個輸入框中的文本,既然用戶能夠點(diǎn)擊“復(fù)制”按鈕,為什么不直接手工復(fù)制呢?

實際上,這就是JS無法復(fù)制的最根本原因,因為瀏覽器的安全策略的限制,JS無法直接操作剪切板的內(nèi)容。瀏覽器的安全限制是很嚴(yán)格的,它不允許JS訪問任何非JS源的元素和屬性,而剪切板屬于系統(tǒng)級功能,屬于非JS源。

解決這個問題較為麻煩,你需要借助瀏覽器的Flash插件或者Silverlight控件進(jìn)行復(fù)制。Flash、Silverlight等插件可以通過瀏覽器提供的相應(yīng)方法調(diào)用操作系統(tǒng)底層API,實現(xiàn)對剪切板的操作。這種方式雖然能夠解決粘貼板無法復(fù)制的問題,但是由于平臺差異性很大而導(dǎo)致的可用性和兼容性問題也十分麻煩。

在jQuery等框架出現(xiàn)前,為了解決這個問題,開發(fā)者們不得不另外單獨(dú)編寫Flash或者Silverlight插件,而這對于絕大多數(shù)前端開發(fā)者來說,顯然十分麻煩。而框架的出現(xiàn),可以一定程度上解決這個問題,例如若要用jQuery實現(xiàn)復(fù)制功能,可以使用Clipboard.js這個插件,非常方便。

綜上所述,JavaScript無法復(fù)制文本的問題并非JS的功能缺陷,而是瀏覽器的安全限制強(qiáng)制導(dǎo)致的結(jié)果。盡管有了很多解決方案,但仍然是個十分麻煩的問題。