小编Dav*_*lle的帖子

没有遥控器的嵌套git存储库(也就是没有遥控器的git子模块)

我有一个项目,我有兴趣将部分分解为开源.我已经在"main/one","main/two","main/three"中设置了一个"main"git存储库(例如,在"main"目录中)和子存储库.我认为通过进入"主要"并做

git add one
git add two
git add three
Run Code Online (Sandbox Code Playgroud)

(注意缺少尾部斜杠),我会设置子模块和子存储库,并且很好.

但是,正如Git中所述 - 如何跟踪未跟踪的内容?,这只会创建gitlinks而不是真正的子模块.

不幸的是,这个答案没有用,因为它假定在其他地方有"主要/一个","主要/两个"和"主要/三个" 的"主"存储库.我希望这些子仓库成为主存储库.我正在考虑假子模块(根据Git假子模块),但这对于克隆来说并不是特别理想的情况.

还有其他建议吗?

git git-submodules

30
推荐指数
2
解决办法
2万
查看次数

带有iframe和ontouchstart的Mobile Safari中的文本选择错误

在我的网络应用程序中,我有不同z-indices的iframe.我正在检测touchstartiframe中某些元素的事件.但是,如果我的文本输入字段与元素捕获重叠touchstart,则输入字段开始表现不正常:在字段中第二次点击未聚焦它,您无法选择任何文本,但您可以键入文本领域.

似乎唯一的解决方案可能是停止touchstart在背景帧上捕获事件.我更喜欢像透明的解决方案div来捕捉事件作为中间人,但我还没有得到这个工作.还有其他解决方法吗?

示例页面位于jsfiddle,但这里是代码:

<!DOCTYPE html> 
<html> 
    <head> 
        <style type='text/css'> 
            iframe {
                position:absolute;
            }
            #background {
                border: solid 3px red;
                z-index:1;
                width: 20em;
                height: 20em;
            }
            #foreground, #foreground2 {
                border: solid 2px yellow;
                z-index:2;
                top: 15em;
                height: 5em;
            }
            #foreground2 {
                top: 22em;
            }
        </style> 

        <script type='text/javascript'> 
            window.onload=function(){
                document.getElementById("foreground").contentDocument.write("<input type='text' value='text'/><input type='text'/>");
                document.getElementById("foreground2").contentDocument.write("<input type='text' value='text'/><input type='text'/>");

                document.getElementById("background").addEventListener("touchstart", function() {
                    console.log("touch");
                });
            }
        </script> 
    </head> 
    <body> 
        <iframe id=background></iframe> 
        <iframe id=foreground></iframe> 
        <iframe id=foreground2></iframe> …
Run Code Online (Sandbox Code Playgroud)

javascript keyboard iframe events mobile-safari

10
推荐指数
1
解决办法
3869
查看次数

在IE 9和10中更改了具有target ="_ blank"行为的表单

我有一个应用程序使用类似下面的代码在新选项卡中打开动态生成的报表.(为了演示,我嘲笑了这些参数.)

function gblPDFWdw(pdf) {
    var formDiv = document.createElement("div");
    formDiv.innerHTML = "<form method=post action='" + pdf + "' target='_blank'><input type=hidden id=test name=test value='test'></form>";
    var form = formDiv.firstChild;
    document.body.appendChild(form);
    form.submit();
    form.parentNode.removeChild(form);
}
Run Code Online (Sandbox Code Playgroud)

pdf参数我们只是URL到生成PDF的脚本.操作的原因form是将参数POST编辑到脚本而不是GET参数.

在IE 8及更低版本,Chrome,Firefox等中,这将做以下两件事之一:

  1. 如果浏览器可以读取PDF(通过内置功能或插件),它将打开一个包含报告的新选项卡,这是所需的行为.
  2. 如果浏览器无法读取PDF,它将打开新选项卡,立即关闭它,然后下载该文件.

似乎#2在IE 9及更高版本中发生了变化.它将打开一个新选项卡,但它只产生一个空白屏幕,直到用户返回原始选项卡,单击"打开"或"保存",然后按预期下载PDF.这是一个非常令人困惑的界面.

我想解决这个问题的一种方法是生成一个临时的PDF文件,然后只需要window.open().是否有其他方法可以调整此功能的行为?或者是否有推荐的做法,我没有遇到过?

(注意:这完全不是PDF特定的;浏览器可以下载而不是本地显示的任何文件似乎都有问题.)

编辑:看起来我的曲线比我意识到的更远.似乎这也发生在IE9中,我从未注意到,因为我没有安装PDF插件或其他文件类型我从未尝试过.

有趣的是,上面的代码工作一样,如果我我希望删除input从表单字段.我不确定为什么浏览器会以不同的方式对待它.当然,在我的情况下,我需要输入POST数据到我的脚本.

编辑2:愚蠢的错误.input是自我关闭.固定.

编辑3:这里有一些截图可以更好地解释这个问题.我正在使用这个JSBin进行测试.我有一个onclick事件来触发上面的Javascript函数.

该过程从第一个选项卡开始.

单击之前的第一个选项卡.

然后,单击文本后,将打开一个新选项卡.但它是空白的!

第二个标签,通过点击打开.

事实证明,原始(现在隐藏)选项卡有一条消息,询问是打开还是保存文件.

警报在第一个标签上!

单击"打开"或"保存"将打开文件就好了.但是这个过程非常令人困惑,并且与其他浏览器不一致.

编辑3:前进一步,后退一步.如果我window.open()用来创建一个新窗口,然后以编程方式设置form.target到该窗口的名称,我至少可以在打开的选项卡中获取打开/保存消息...虽然我更喜欢它立即关闭选项卡浏览器.更糟糕的是,使用该技术,新标签不再立即关闭.也许还有另一种技术?

javascript forms tabs internet-explorer-9 internet-explorer-10

9
推荐指数
1
解决办法
3877
查看次数

与PDFlib API兼容的PHP包装器

是否有任何PHP的其他PDF生成包的包装器提供与PDFlib的API兼容性?

我们公司多年来一直使用PDFlib从PHP生成PDF,但是从版本5开始就没有升级.现在我们要升级一些服务器,我们需要升级或找到替代品.我想用一个允许商业用途的开源产品替换PDFlib.但是,我们(愚蠢地,或许)第一次没有编写我们自己的PDFlib包装器,并且有许多代码需要更改和测试.

我意识到我可以编写自己的包装器,但我发现令人惊讶的是,到目前为止我的搜索并没有让其他人做出同样的事情.

php api pdflib

5
推荐指数
1
解决办法
824
查看次数