您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

66 行
1.9 KiB

  1. using Microsoft.JSInterop;
  2. namespace BlazorPages.Tools
  3. {
  4. public class BrowserTools : IBrowserTools
  5. {
  6. private readonly IJSRuntime _js;
  7. public BrowserTools(IJSRuntime js)
  8. {
  9. _js = js;
  10. }
  11. public async Task<BrowserDimension> GetDimensions()
  12. {
  13. return await _js.InvokeAsync<BrowserDimension>("methods.getDimensions");
  14. }
  15. public async Task<ValueTask> CopyText(string text)
  16. {
  17. return _js.InvokeVoidAsync("navigator.clipboard.writeText", text);
  18. }
  19. public async Task PrepareResponsiveTable()
  20. {
  21. await _js.InvokeVoidAsync("methods.PrepareResponsiveTable");
  22. }
  23. public async Task<string> GetInputValueById(string id)
  24. {
  25. return await _js.InvokeAsync<string>("AbrMethods.getInputValue", id);
  26. }
  27. public async Task<string> GetInputValueByIdAndReplacePersianNumbers(string id)
  28. {
  29. var text = await GetInputValueById(id);
  30. var digits = new string[] { "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹" };
  31. var english = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
  32. for (var i = 0; i < digits.Length; i++)
  33. text = text.Replace(digits[i], english[i]);
  34. return text;
  35. }
  36. public async Task ScrollToEnd()
  37. {
  38. await _js.InvokeVoidAsync("methods.ScrollToEnd");
  39. }
  40. }
  41. public class BrowserDimension
  42. {
  43. public int Width { get; set; }
  44. public int Height { get; set; }
  45. }
  46. public interface IBrowserTools
  47. {
  48. Task<BrowserDimension> GetDimensions();
  49. Task<ValueTask> CopyText(string text);
  50. Task PrepareResponsiveTable();
  51. Task<string> GetInputValueById(string id);
  52. Task<string> GetInputValueByIdAndReplacePersianNumbers(string id);
  53. Task ScrollToEnd();
  54. }
  55. }