我在MathJax中看到它们包含这样的脚本。
config
有没有办法在javascript中获取javac YourPathToFile\yourClass.java
java YourPathToFile\yourClass
pause;
参数?
答案 0 :(得分:1)
获取该URL的唯一方法是搜索当前文档并找到该特定Dim Job_ID As Integer = int.Parse(lbljob_id.Text.Trim())
标记,然后从脚本标记中获取<script>
属性,然后解析它以获取配置参数。
脚本被加载到全局浏览器命名空间中,并且没有任何特定脚本所特有的属性或变量。你可以使用这样的东西:
.src
然后,您可以使用该泛型函数来查找您的特定标记并解析出配置值,如下所示:
function findScript(tagToMatch) {
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src.indexOf(tagToMatch) !== -1) {
// scripts[i].src is the full URL
return scripts[i].src;
}
}
}
而且,这是一个工作片段:
function findConfig() {
var url = findScript("/MathJax.js?"), matches;
if (url) {
matches = url.match(/[&?]config=([^&$]+)/);
if (matches) {
return matches[1];
}
}
return null;
}
var cfg = findConfig();
&#13;
function findScript(tagToMatch) {
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src.indexOf(tagToMatch) !== -1) {
// scripts[i].src is the full URL
return scripts[i].src;
}
}
}
function findConfig() {
var url = findScript("/MathJax.js?"), matches;
if (url) {
matches = url.match(/[&?]config=([^&$]+)/);
if (matches) {
return matches[1];
}
}
return null;
}
document.write(findConfig());
&#13;
答案 1 :(得分:1)
您可以使用正则表达式和plain-old-javascript来提取config参数,但如果您使用jQuery,则可以使用更优雅的方法来隔离所需的元素。
function extractMathJaxConfig() {
var scripts = document.getElementsByTagName("script")
var regex = /config=([^&]+)/
for (var i = 0; i < scripts.length; ++i) {
var src = scripts[i].src;
if (src.indexOf("MathJax.js") != -1) {
var results = regex.exec(src);
if (results) return results[1];
}
}
}
console.log(extractMathJaxConfig());
JSFiddle:https://jsfiddle.net/vdqvjnbw/
答案 2 :(得分:0)
您不会通过您在脚本标记中请求的脚本获取该参数,原因如下:
在浏览器将这些字节拉入页面之前,JS代码的二进制表示不会加载到内存中。这意味着,JS基本上只是服务器上的文本文件,直到它被浏览器下载并解释;在那之前,JavaScript没有任何行为。
但是,在页面内部 - 如果您要从脚本标记的src
属性中删除该查询参数 - 您可以执行以下操作:
function getURIComponents(uri) {
var a = document.createElement('a');
a.href = uri;
return {
origin: a.origin,
search: a.search
};
}
function getParams(uri) {
var c = getURIComponents(uri);
var pairs = c.search.split('?')[1].split('&');
var params = {};
for (var i = 0, len = pairs.length; i < len; i++) {
var pair = pairs[i].split('=');
var name = pair[0];
var value = pair[1];
params[name] = value;
}
return params;
}
getParams(document.getElementByTagName('script').src);
这个[未经测试的]代码应该为您提供一个包含密钥config
的对象,其中包含为其设置的值。
希望这有帮助。