嘿所有,我一直在尝试将一个通用函数放在一起,检索网页上正在执行的JavaScript文件的绝对URL:
基本上你可以这样打电话:
getScriptName(function(url) {
console.log(url);
// http://www.example.com/myExternalJsFile.js
});
Run Code Online (Sandbox Code Playgroud)
在页面上的外部JavaScript文件中,然后可以对其执行某些操作(例如,查找<script>加载它的标记).
它几乎在我测试过的所有浏览器中都很棒(至少Firefox,Chrome,Safari,Opera v10和IE 8).
但是,它似乎在IE 6和7中失败.回调函数被执行,但检索到的名称是主HTML页面的URL,而不是JavaScript文件.继续该示例,getScriptName使用参数调用回调:http://www.example.com/index.html
所以我真正想问的是,是否有其他方法可以获取当前JavaScript文件的URL(可能是IE 6和7特定的hackery)?提前致谢!
编辑:此外,这不适用于所有情况,所以请不要推荐它:
var scripts = document.getElementsByTagName("script");
return scripts[scripts.length-1].src;
Run Code Online (Sandbox Code Playgroud)
我希望它适用于动态创建的脚本标记(可能不会放在页面的最后),也就是延迟加载.
而不是普通类型的表我想在RootViewController中使用Grouped .Anyone知道如何做到这一点?
我发现对于我认为非常重要的东西,关于如何处理这个问题的信息或库很少。
我在搜索时发现了这个。我真的不知道黑客可以尝试插入危险标签的所有方式。
我有一个丰富的 html 编辑器,所以我需要保留非危险标签但去掉坏标签。
那么这个脚本是否遗漏了什么?
它使用 html 敏捷包。
public string ScrubHTML(string html)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
//Remove potentially harmful elements
HtmlNodeCollection nc = doc.DocumentNode.SelectNodes("//script|//link|//iframe|//frameset|//frame|//applet|//object|//embed");
if (nc != null)
{
foreach (HtmlNode node in nc)
{
node.ParentNode.RemoveChild(node, false);
}
}
//remove hrefs to java/j/vbscript URLs
nc = doc.DocumentNode.SelectNodes("//a[starts-with(translate(@href, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'javascript')]|//a[starts-with(translate(@href, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'jscript')]|//a[starts-with(translate(@href, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'vbscript')]");
if (nc != null)
{
foreach (HtmlNode node in nc)
{
node.SetAttributeValue("href", "#");
}
}
//remove img with refs to …Run Code Online (Sandbox Code Playgroud) 我很好奇Linux中的CPU排序是什么.假设我将一个线程绑定到cpu0而另一个线程绑定到超线程系统上的cpu1,它们是否都将位于同一个物理核心上.鉴于具有4核和超线程的Core i7 920,/ proc/cpuinfo的输出让我认为cpu0和cpu1是不同的物理内核,而cpu0和cpu4在同一物理内核上.
谢谢.
当我打电话时XmlNode.AppendChild(),我收到此错误:
要插入的节点来自不同的文档上下文.
static public XmlNode XMLNewChildNode(XmlNode oParent, string sName,
string sNamespaceURI, string sNodeType)
{
XmlNode oNode = moDoc.CreateNode(sNodeType, sName, sNamespaceURI);
oParent.AppendChild(oNode);
return oNode;
}
Run Code Online (Sandbox Code Playgroud)
这段代码是从它的VB 6.0版本转换而来的(请忽略可选参数,我在C#版本中有重载):
Public Function XMLNewChildNode(ByVal oParent As IXMLDOMNode, ByVal _
sName As String, Optional ByVal sNamespaceURI As String = "", _
Optional ByVal sNodeType As String = "element") As IXMLDOMNode
'**************** DESCRIPTION *******************
'Create a new Child Node for passed Parent.
'***************** VARIABLES ********************
Dim oNode As IXMLDOMNode
'************************************************
Set oNode = moDoc.createNode(sNodeType, sName, …Run Code Online (Sandbox Code Playgroud) 在64位x86 Linux平台上使用带有g ++/Intel的自动数组是否会产生显着的CPU /内存开销?
int function(int N) {
double array[N];
Run Code Online (Sandbox Code Playgroud)
与先前分配数组相比的开销(假设函数被多次调用)
与使用新的相比开销
与使用相比的开销 malloc
N的范围可以粗略地从1kb到16kb,堆栈溢出不是问题.
我正在尝试为clisp创建一个像这样工作的"系统"命令
(setq result (system "pwd"))
;;now result is equal to /my/path/here
Run Code Online (Sandbox Code Playgroud)
我有这样的事情:
(defun system (cmd)
(ext:run-program :output :stream))
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何将流转换为字符串.我已经多次回顾了hyperspec和google.
编辑:使用Ranier的命令并使用with-output-to-stream,
(defun system (cmd)
(with-output-to-string (stream)
(ext:run-program cmd :output stream)))
Run Code Online (Sandbox Code Playgroud)
然后试着跑grep,这是我的道路......
[11]> (system "grep")
*** - STRING: argument #<OUTPUT STRING-OUTPUT-STREAM> should be a string, a
symbol or a character
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead.
ABORT :R2 Abort main loop
Break 1 [12]> :r2
Run Code Online (Sandbox Code Playgroud) 我在http://projecteuler.net/上用JavaScript 解决了一些问题.我一直在使用一个简单的html页面并在脚本标签中运行我的代码,因此我可以在浏览器的控制台中记录我的结果.在尝试循环时,我有时会导致浏览器崩溃.
我是否有更好的环境来进行这种开发?
我想enum为一个switch语句使用一个值.是否可以使用所enum包含的值"{}"作为switch()"?我知道switch()需要一个integer值才能将编程流程指向适当的case数字.如果是这种情况,我是否只为每个常量创建一个变量在enum声明中?我还希望用户能够选择并将该选择传递给switch()语句.
例如:
cout << "1 - Easy, ";
cout << "2 - Medium, ";
cout << "3 - Hard: ";
enum myChoice { EASY = 1, MEDIUM = 2, HARD = 3 };
cin >> ????
switch(????)
{
case 1/EASY: // (can I just type case EASY?)
cout << "You picked easy!";
break;
case 2/MEDIUM:
cout << "You picked medium!"; …Run Code Online (Sandbox Code Playgroud) 首先,有一个随机访问随机数生成器,你不仅可以按顺序生成随机数,因为我们都习惯了,假设rand100()总是生成0-100的值:
for (int i=0;i<5;i++)
print rand100()
output:
14
75
36
22
67
Run Code Online (Sandbox Code Playgroud)
但也随机访问任何随机值,如:
只要您没有更改种子,rand100(0)就会输出14
rand100(3)总是输出22
rand100(4)总是输出67
等等...
我实际上发现了一个开源生成器算法,但是你不能改变种子.我知道伪随机性是一个复杂的领域; 我不知道如何改变它来添加该功能.
是否有可播种的随机访问随机数生成器,最好是开源?还是有一个更好的术语我可以谷歌获取更多信息?
如果没有,我的问题的第2部分是,是否有任何可靠的随机开源传统可种子伪随机数生成器,所以我可以将它移植到多个平台/语言,同时为任何给定的种子保留每个平台的一致值序列?