Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取javascript函数参数_Javascript_Html_Greasemonkey - Fatal编程技术网

获取javascript函数参数

获取javascript函数参数,javascript,html,greasemonkey,Javascript,Html,Greasemonkey,我正在尝试为Greasemonkey编写代码。我可以处理标记名、ID等,但我被“脚本”标记卡住了。我可以得到这个脚本标签的innerHTML。但是我只想得到“on”函数的输入参数,特别是第四个输入,它是一个数字。并将它们存储在一个数组中 <ol id="online1"> <script language="javascript" > on('0','2','abc','401757',''); on('1','1','as

我正在尝试为Greasemonkey编写代码。我可以处理标记名、ID等,但我被“脚本”标记卡住了。我可以得到这个脚本标签的innerHTML。但是我只想得到“on”函数的输入参数,特别是第四个输入,它是一个数字。并将它们存储在一个数组中

<ol id="online1">
        <script language="javascript" >
            on('0','2','abc','401757','');
    on('1','1','asd','1115337','');
    on('2','2','asdsad','1169333','');
    gi('asdasd','10453','');
    gi('asdasd','10453','');
.
.
.
.
</script>
我可以像这样获得脚本的innerHTML:

window.frames[2].document.getElementById('online1').getElementsByTagName('script')[0].innerHTML

根据您的示例,您可以在innerHTML上使用
作为分隔符。如果您愿意,您可以添加额外的保护措施并使用

JavaScript:

var vals = document.getElementsByTagName('script')[2].innerHTML.split(',');
for(var i = 3; i < vals.length; i+=4)
{
    console.log(vals[i]);
}

如果您将其作为字符串,只需使用正则表达式解析即可。好的,这是第一步。你是说,从技术上讲,我可以解析“on(”和“);”之间的内容然后解析第三个和第四个逗号之间的内容。你能多给我一点建议吗?这也是有道理的。那么这种做法正确吗?1-分裂使用;要使用2-split获取行,要获取参数3-check第一个参数是否为“on”@ardavar通常就是这样。请记住,如果逗号或分号丢失,这种方法将失败。这已经足够接近了,在我的示例中,它将失败,因为参数(因此逗号不是所有函数的标准值)我将添加一些检查点来过滤函数。
var vals = document.getElementsByTagName('script')[2].innerHTML.split(',');
for(var i = 3; i < vals.length; i+=4)
{
    console.log(vals[i]);
}
'401757'
'1115337'
'1169333'
'10453'