问题列表 - 第28598页

获取执行JavaScript文件的URL(主要是IE6-7问题)

嘿所有,我一直在尝试将一个通用函数放在一起,检索网页上正在执行的JavaScript文件的绝对URL:

http://gist.github.com/433486

基本上你可以这样打电话:

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)

我希望它适用于动态创建的脚本标记(可能不会放在页面的最后),也就是延迟加载.

html javascript internet-explorer cross-browser absolute

19
推荐指数
1
解决办法
961
查看次数

如何在RootViewController中将RootViewController设置为Grouped表

而不是普通类型的表我想在RootViewController中使用Grouped .Anyone知道如何做到这一点?

uitableview ipad uisplitviewcontroller

2
推荐指数
1
解决办法
1774
查看次数

这可以改进吗?清理危险的 html 标签

我发现对于我认为非常重要的东西,关于如何处理这个问题的信息或库很少。

我在搜索时发现了这个。我真的不知道黑客可以尝试插入危险标签的所有方式。

我有一个丰富的 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)

.net javascript c# security

4
推荐指数
1
解决办法
2144
查看次数

Linux中的CPU排序(带超线程)

我很好奇Linux中的CPU排序是什么.假设我将一个线程绑定到cpu0而另一个线程绑定到超线程系统上的cpu1,它们是否都将位于同一个物理核心上.鉴于具有4核和超线程的Core i7 920,/ proc/cpuinfo的输出让我认为cpu0和cpu1是不同的物理内核,而cpu0和cpu4在同一物理内核上.

谢谢.

linux hyperthreading

12
推荐指数
1
解决办法
1万
查看次数

错误:"要插入的节点来自不同的文档上下文"

当我打电话时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)

c# xml

101
推荐指数
1
解决办法
8万
查看次数

C99可变长度自动阵列性能

在64位x86 Linux平台上使用带有g ++/Intel的自动数组是否会产生显着的CPU /内存开销?

int function(int N) {
    double array[N];
Run Code Online (Sandbox Code Playgroud)
  • 与先前分配数组相比的开销(假设函数被多次调用)

  • 与使用新的相比开销

  • 与使用相比的开销 malloc

N的范围可以粗略地从1kb到16kb,堆栈溢出不是问题.

c performance

5
推荐指数
2
解决办法
1143
查看次数

使用gnu clisp运行shell命令

我正在尝试为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)

lisp clisp stream

4
推荐指数
1
解决办法
2513
查看次数

如何测试潜在的"浏览器崩溃"JavaScript?

我在http://projecteuler.net/上用JavaScript 解决了一些问题.我一直在使用一个简单的html页面并在脚本标签中运行我的代码,因此我可以在浏览器的控制台中记录我的结果.在尝试循环时,我有时会导致浏览器崩溃.

我是否有更好的环境来进行这种开发?

javascript browser loops infinite-loop

8
推荐指数
1
解决办法
3241
查看次数

如何在C++中的switch语句中使用枚举值

我想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)

c++ enums switch-statement

38
推荐指数
5
解决办法
12万
查看次数

是否存在随机可访问的伪随机数生成器?(最好是开源)

首先,有一个随机访问随机数生成器,你不仅可以按顺序生成随机数,因为我们都习惯了,假设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部分是,是否有任何可靠的随机开源传统可种子伪随机数生成器,所以我可以将它移植到多个平台/语言,同时为任何给定的种子保留每个平台的一致值序列?

random random-access

14
推荐指数
3
解决办法
1226
查看次数