我有一个javascript文件,它包含以下js脚本
MATCH (p:person),(d:company)
WHERE p.org_lookup_id=d.org_id
merge (p)-[r:WORKS_FOR]->(d)
RETURN type(r)
我使用以下代码将其读取为字符串:
(function() {
try {
var click = new MouseEvent('click', {bubbles: true, cancelable: true, view: window});
var field = document.querySelector('input[type="email"]');
setTimeout(function() {
field.dispatchEvent(click);
field.focus();
field.value="{0}";
}, 500);
return true;
} catch(err) {
return false;
}
})();
我收到错误消息:抛出异常:mscorlib.dll中的'System.FormatException'
当我尝试用“我的用户名” 替换 {0} 时。 有人可以帮我吗?
谢谢。
基于PepitoSh方法的答案如下:
var path = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\script\\myjavascript.js";
var raw = File.ReadAllText(path);
var args = new object[] { "my_username" };
Console.WriteLine(raw, args);
答案 0 :(得分:3)
您必须转义所有其他{
和}
并仅保留"{0}"
来使string.format
正常工作。
我还将添加一个具有所有变量属性的js对象,并将其用作js脚本中的参数或全局对象,因此对于多个脚本,我只需要替换一次值即可。
答案 1 :(得分:2)
由于确实需要转义不属于格式的花括号,因此在这种特定情况下,我建议使用另一种方法:
var path = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\script\\myjavascript.js";
var raw = File.ReadAllText(path);
raw = raw.Replace("{0}", "my_username");
Console.WriteLine(raw);