正在逃离bookmarklet中未跳过的原始字符串
Escaping raw, unescaped strings in bookmarklet
我正试图为Chrome编写一个搜索引擎bookmarklet,但我在转义字符串时遇到了问题。
例如,如果搜索引擎bookmarklet如下:
javascript:alert("%s"); //%s is the search engine query, passed literally by chrome.
然后在以下字符串上运行它将给出不正确的结果:
c:'zebra
c:zebra instead of c:'zebra
如果斜杠后面的字符恰好是一个实际的转义字符,则结果会因字符而异。
我尝试过转义和取消对字符串的捕获,我尝试过对其进行reg-exp'ing,并用双斜杠替换斜杠,但我无法找到实现这一点的方法,因为原始字符串第一次进入脚本时,它是取消捕获的,之后的任何操作都会错误地看到它。
如何正确处理?
到目前为止,我只能在chrome:中完成这项工作
javascript: var str = (function(){STARTOFSTRING:/*%s*/ENDOFSTRING:;}).toString().match( /STARTOFSTRING:'/'*(['s'S]*)'*'/ENDOFSTRING:/ )[1]; alert(str);
写入c:''zebra将提醒c:''zebra。
不幸的是,Firefox在反编译时无法维持函数体中的注释。
您也不能在字符串中写入序列*/
,但其他所有内容都应该按字面传递,包括引号"
'
等
相关文章:
- 如何使用JavaScriptLib将字符串(WYSIWYG)转换为原始html
- 正在将DOM元素转换为原始HTML字符串
- 正在逃离bookmarklet中未跳过的原始字符串
- 遍历 Javascript 正则表达式匹配以修改原始字符串
- 从十六进制字符串中获取原始十六进制
- 通过javascript获取原始/未修改的请求字符串
- GWT JavaScriptObject:获取原始 json 字符串
- 当字符串通过 javascript 中的 encodeURIComponent 时,将字符串解析为原始形式
- 在 JavaScript 中将原始图像的十六进制字符串转换为位图图像
- 解压缩后如何取回原始字符串 - Zlib
- 将JSON字符串(Pretified)转换回原始字符串(包含所有转义符)
- 字符串化对象,然后将其解析回其原始对象
- 如何在javascript字符串中使用javascript模板而不是原始HTML
- JS 替换返回原始字符串
- 新字符串的类型(“aaa”)==;对象“;?一切事物都是一个对象,但也有原始类型
- 原始字符串是否始终保持未修改
- eval()如何区别对待字符串对象和原始字符串值
- 如何使用 Jquery 或 Javascript 更改原始字符串中的 HTML 属性
- 将字符串数组拆分为两个数组,每个数组包含原始字符串的一部分
- 原始字符串有方法