Ich entwickle eine Chrome-Erweiterung mit dem Blazor.BrowserExtension-Paket. Das Ziel besteht darin, das DOM von Gmail zu manipulieren, indem Razor-Komponenten eingefügt und C#-Methoden aus custom.js (Inhaltsskript) aufgerufen werden. Unten sind die relevanten Teile meiner Implementierung:
manifest.json:
using Blazor.BrowserExtension;
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Test.Components;
namespace Test
{
public static class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.UseBrowserExtension(browserExtension =>
{
if (browserExtension.Mode == BrowserExtensionMode.ContentScript)
{
builder.RootComponents.RegisterForJavaScript("CustomButton");
}
if (browserExtension.Mode == BrowserExtensionMode.Background)
{
builder.RootComponents.AddBackgroundWorker();
}
else
{
builder.RootComponents.Add("#app");
builder.RootComponents.Add("head::after");
}
});
builder.Services.AddScoped();
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
}
}
Wenn ich das ausführe, treten die folgenden Fehler auf:
blazor.webassembly.js:1 Das Laden wurde abgelehnt das Skript 'https://mail.google.com/mail/u/0/framework/dotnet.js', weil es gegen die Richtlinie zur Inhaltssicherheit verstößt: "script-src 'self' 'wasm-unsafe-eval' .. ."
Modulskript konnte nicht geladen werden: Erwartet ein JavaScript-Modulskript, aber der Server hat mit dem MIME-Typ „text/html“ geantwortet.
blazor.webassembly.js:1 Nicht abgefangen (in Versprechen) Fehler: Start fehlgeschlagen Plattform.
Meine Frage:
Ist es möglich, Blazor.BrowserExtension zu verwenden? Razor-Komponenten in das DOM von Gmail einfügen?
Sind diese Fehler auf Einschränkungen mit Blazor.BrowserExtension bei der Handhabung des CSP von Gmail oder auf Ressourcenbeschränkungen zurückzuführen?
Sollte ich Wechseln Sie zu einer reinen JavaScript-Implementierung für die DOM-Manipulation in In diesem Fall?
Ich entwickle eine Chrome-Erweiterung mit dem Blazor.BrowserExtension-Paket. Das Ziel besteht darin, das DOM von Gmail zu manipulieren, indem Razor-Komponenten eingefügt und C#-Methoden aus custom.js (Inhaltsskript) aufgerufen werden. Unten sind die relevanten Teile meiner Implementierung: manifest.json: [code]{ "manifest_version": 3, "name": "Test Extension", "description": "My browser extension built with Blazor WebAssembly", "version": "0.1", "background": { "service_worker": "content/BackgroundWorker.js", "type": "module" }, "permissions": [ "activeTab", "scripting", "storage" ], "host_permissions": [ "https://mail.google.com/*" ], "action": { "default_popup": "popup.html" }, "options_ui": { "page": "options.html", "open_in_tab": true }, "content_security_policy": { "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'", "script-src": "'self' 'unsafe-inline' 'unsafe-eval'", "object-src": "'self'" }, "content_scripts": [ { "matches": ["https://mail.google.com/mail/*"], "js": ["framework/blazor.webassembly.js","content/custom.js"], "run_at": "document_idle" } ], "web_accessible_resources": [ { "resources": [ "framework/*", "content/*", "wwwroot/*" ], "matches": [ "https://mail.google.com/*" ] } ] } [/code] Program.cs: [code]using Blazor.BrowserExtension; using System; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.DependencyInjection; using Test.Components;
namespace Test { public static class Program { public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args);
document.head.appendChild(blazorScript); })(); [/code] Wenn ich das ausführe, treten die folgenden Fehler auf: [list] [*]blazor.webassembly.js:1 Das Laden wurde abgelehnt das Skript 'https://mail.google.com/mail/u/0/framework/dotnet.js', weil es gegen die Richtlinie zur Inhaltssicherheit verstößt: "script-src 'self' 'wasm-unsafe-eval' .. ." [*]Ungefangen (versprochen) Fehler: Plattform konnte nicht gestartet werden. Grund: TypeError: Das dynamisch importierte Modul konnte nicht abgerufen werden: https://mail.google.com/mail/u/0/framework/dotnet.js [*]Modulskript konnte nicht geladen werden: Erwartet ein JavaScript-Modulskript, aber der Server hat mit dem MIME-Typ „text/html“ geantwortet. [*]blazor.webassembly.js:1 Nicht abgefangen (in Versprechen) Fehler: Start fehlgeschlagen Plattform. [/list] Meine Frage: [list] [*]Ist es möglich, Blazor.BrowserExtension zu verwenden? Razor-Komponenten in das DOM von Gmail einfügen? [*]Sind diese Fehler auf Einschränkungen mit Blazor.BrowserExtension bei der Handhabung des CSP von Gmail oder auf Ressourcenbeschränkungen zurückzuführen? [*]Sollte ich Wechseln Sie zu einer reinen JavaScript-Implementierung für die DOM-Manipulation in In diesem Fall? [/list] Jede Anleitung wäre willkommen.
Ich entwickle eine Chrome-Erweiterung mit dem Blazor.BrowserExtension-Paket. Das Ziel besteht darin, das DOM von Gmail zu manipulieren, indem Razor-Komponenten eingefügt und C#-Methoden aus custom.js...
Dies ist das erste Mal, dass ein Projekt mit React + Typescript durchgeführt wird. Wenn ich das Skript ausführe, funktioniert es und wird in meinem Browser angezeigt. Das Einzige, was ich nicht...
Ich entwickle eine Chrome V3-Erweiterung mit einer Optionsseite, die chrome.storage verwendet, um Benutzereinstellungen beizubehalten.
Auf dem Hintergrundskript js habe ich einen Listener, der...
Ich entwickle eine .NET MAUI Blazor -App, die eine Rasierklassenbibliothek (RCL) für gemeinsam genutzte Komponenten und Seiten für das Web, Android und iOS verwendet. Alles funktioniert wie erwartet...