konnte ich die folgende Grease in lokale HTML-Datei auszuführen:Wie führe ich eine Javascript-Datei über Protokolle/Schemata aus?
// ==UserScript==
// @name test
// @include file:///C:/fx/test/a.html
// @grant none
// ==/UserScript==
var scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "file://c:/fx/alert.js";
document.head.appendChild(scriptElement);
ich in der Lage war, die folgenden in localhost ausführen:
// ==UserScript==
// @name testWeb
// @include http://localhost/test/a.html
// @grant none
// ==/UserScript==
var scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "http://localhost/test/alert.js";
document.head.appendChild(scriptElement);
Allerdings war ich folgendes ausführen nicht in der Lage. Es gibt eine HTML-Datei im Webserver und eine Skriptdatei im lokalen Laufwerk. config:
// ==UserScript==
// @name testWeb
// @include http://localhost/test/a.html
// @grant none
// ==/UserScript==
var scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "file://c:/fx/alert.js";
document.head.appendChild(scriptElement);
greasemonkey.fileIsGreaseable
wurde in etwa auf true gesetzt.
Was soll ich tun, um eine lokale Skriptdatei im Skript-Tag auszuführen?
Was passiert, wenn Sie '// @include file: /// C:/fx/test/a.html' zu Ihrer letzten Probe hinzufügen? – LGSon
Sie versuchen, domänenübergreifend auf das Dateisystem zuzugreifen. In den meisten Browsern ist das nicht erlaubt. – Bindrid
'fileIsGreaseable' bedeutet nur, dass greasemonkey Ihre Skripte auch dann ausführt, wenn Sie eine 'file: //' URL im Browser aufrufen (normalerweise fängt sie nur' http: // 'und' https: // ') ab. – melpomene