我的需求是 js呼叫C#代碼,然后C#代碼把執行結果回傳給js代碼,js代碼能接收到. 然后復制回傳的值.
目前有2個解決方案都有問題.
第一個是如下js代碼
function testClick() {
var strHello = "<%=test()%>";
alert(strHello);
}
test()函式的的回傳值是一個字串,如果執行快沒事,js代碼啊的strHello 變數可以接收到C#代碼回傳的值.
如果test()函式里面比較復雜,執行的慢了,strHello 是接收不到值的.
第二個解決方案是
js代碼直接呼叫了test(),但是不接收值,然后test()函式里是這樣的:
public void test()
{
ScriptManager.RegisterStartupScript(this.form1, this.Page.GetType(), "", "copyCallback('hello');", true);
}
js函式是這樣的:
function copyCallback(text) {
var input = document.createElement('input');
input.setAttribute('id', "copyInput");
input.setAttribute('value', text);
document.getElementsByTagName('body')[0].appendChild(input);
document.getElementById("copyInput").select();
if (document.execCommand('copy')) {
document.getElementById("copyInput").remove();
}
else {
document.getElementById("copyInput").remove();
}
}
C#的test()函式呼叫了js的copyCallback函式把引數hello傳給了copyCallback,然后就是復制代碼了,但是會復制失敗.
前臺頁面直接呼叫copyCallback函式是可以復制的,但是后臺呼叫這個函式就復制失敗了.
這2個解決方案,能解決任意一個都可以實作的的需求,請問有什么辦法嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/204074.html
標籤:ASP.NET
