我最近发现某些jQuery UI小部件有其他属性可以使用,但没有记录。例如,在jQuery UI 1.11.4对话框中提供buttons
属性时,我可以使用id
和autofocus
等子属性,$("#myDialog").dialog({
title: "Do the thing?"
buttons:
[
{
text: "Yes",
id: "dialogBtnYes",
click: function () {
$(this).dialog("close")
}
},
{
text: "No thanks",
id: "dialogBtnNo",
autofocus: true,
click: function () {
$(this).dialog("close")
}
}
]
});
和requests
中都没有列出Selenium
和#open Tor browser
os.system('open /Applications/TorBrowser.app')
#code to scrape
#close Tor browser
???
3}}
import subprocess
subprocess.Popen('/Applications/TorBrowser.app') #permission denied
我想知道还有多少其他未记录的选项供我使用。我试过梳理JavaScript文件,但对于像我这样的JavaScript新手来说这是非常艰巨的。
通过源代码梳理你们想要找出其他“隐藏”功能的内容,或者这是不可行的?如果是这样的话,在太阳成为红巨人之前,有什么建议可以告诉我如何实现这个目标吗?如果没有,您可以推荐哪些其他方法来学习jQuery UI(或任何JavaScript框架)必须提供的内容?
答案 0 :(得分:1)
使用递归函数枚举库的所有方法和属性。例如:
function getUDFs()
{
var current;
/* Use a local variable named current instead of a global variable */
for(current in arguments[0])
{
getUDFs.id = arguments[1] + " => ";
/* If the property is not null or undefined */
if (!!arguments[0][current] || arguments[0][current] === "")
{
/* If the constructor is a standard JavaScript type */
if (/Function|String|Object/.test(String(arguments[0][current].constructor) ) )
{
/* Store in an array */
if (getUDFs.hasOwnProperty("data") )
{
getUDFs.data.push(getUDFs.id + current)
}
else
{
getUDFs.data = []
}
}
if (/Object|Function/.test(String(arguments[0][current].constructor) ) )
{
getUDFs(arguments[0][current], getUDFs.id + current)
}
}
}
}
getUDFs($.ui,"jQueryUI");
console.log(getUDFs.data);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
&#13;
一旦jQuery UI对象成为DOM元素,就会添加id
和mousemove
属性。例如:
function getUDFs()
{
var current;
for(current in arguments[0])
{
getUDFs.id = arguments[1] + " => ";
if (!!arguments[0][current] || arguments[0][current] === "")
{
if (/Function|String|Object/.test(String(arguments[0][current].constructor) ) )
{
if (getUDFs.hasOwnProperty("data") )
{
getUDFs.data.push(getUDFs.id + current)
}
else
{
getUDFs.data = []
}
}
if (/Object|Function/.test(String(arguments[0][current].constructor) ) )
{
getUDFs(arguments[0][current], getUDFs.id + current)
}
}
}
}
getUDFs(document.body,"document.body");
console.log(getUDFs.data);
&#13;
<强>参考强>