怎么直接将js脚本的值赋值给quicker变量呢?

使用问题 · 440 次浏览
epodak 创建于 2024-01-27 09:09

$$function checkIllegalTitle() {
    // 定义一个包含非法字符的正则表达式
    // 这个例子中,非法字符包括了一些特殊符号,您可以根据需要调整这个列表
    const illegalChars = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/;
    return illegalChars.test(document.title);
}

// 使用变量存储检查结果
var {isIllegal} = checkIllegalTitle();

===
我在quicker中定义了一个  isIllegal 布尔变量,他不能直接赋值吗?
我该如何传递值给quicker?


epodak 2024-01-27 09:22 :

我现在的做法是构造一个json
```js

(function() {

    const illegalChars = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/;

    const isIllegal = illegalChars.test(document.title);


    // 返回一个对象,该对象包含了检查结果

    return {

        titleContainsIllegalChars: isIllegal

    };

})(); // 定义并立即执行这个函数

```
然后再用 `提取json内容` 来提取 titleContainsIllegalChars 到 quicker `isIllegal` 变量.
好像这样有点麻烦,虽然有效.

 

回复内容
CL 2024-01-27 11:01
#1

是的,没有办法直接赋值,因为这个是跨进程的,只能通过文本的形式传递回来之后再做解析。

epodak 回复 CL 2024-01-28 20:53 :

我发现我调用两次浏览器控制的时候,后面一个会报错.我搞不明白.
```js
 (function() {
    const illegalChars = /[!@#$%^&*()_+=\[\]{};':"\\|,.<>\/?]+/g; 
    const isIllegal = illegalChars.test(document.title);
    const originalTitle = document.title;
    const modifiedTitle = originalTitle.replace(illegalChars, '_');
    return {
        titleContainsIllegalChars: isIllegal,
        webTitle: originalTitle,
        suggestTitle: modifiedTitle
    };

})();
```
这是第一次调用,输出了json,没有任何问题.
第二次调用就会报错
```js
document.title = "value"
```
错误提示:
"""

---------------------------

Quicker

---------------------------

false不支持的格式转换,目标类型:Boolean  源对象:Newtonsoft.Json.Linq.JArray  [

  "value"

] ex:无法将类型为“Newtonsoft.Json.Linq.JArray”的对象强制转换为类型“System.IConvertible”。

---------------------------

确定   

---------------------------


"""
虽然报错,但是仍然执行了语句.

epodak 回复 CL 2024-01-28 20:56 :

明白了.我这地方原始返回结果添加的时一个bool变量

回复主贴