Javascript 嵌入脚本未显示在Chrome的预览弹出窗口中

Javascript 嵌入脚本未显示在Chrome的预览弹出窗口中,javascript,html,google-chrome,github,Javascript,Html,Google Chrome,Github,我有一些JavaScript将发布到一个新窗口,以便向我显示我正在工作的内容的预览。以下是我正在做的事情: $(document).ready(function () { $("#previewButton").click(function () { $("#previewform").remove(); var form = document.createElement("form"); form.setAttribute("id",

我有一些JavaScript将发布到一个新窗口,以便向我显示我正在工作的内容的预览。以下是我正在做的事情:

$(document).ready(function () {
    $("#previewButton").click(function () {
        $("#previewform").remove();

        var form = document.createElement("form");
        form.setAttribute("id", "previewform");
        form.setAttribute("method", "post");
        form.setAttribute("action", "/Home/Preview");
        form.setAttribute("target", "formresult");

        var bodyField = document.createElement("input");
        bodyField.setAttribute("type", "hidden");
        bodyField.setAttribute("name", "Body");
        bodyField.setAttribute("value", $("#Body").val());
        var nameField = document.createElement("input");
        nameField.setAttribute("type", "hidden");
        nameField.setAttribute("name", "Slug");
        nameField.setAttribute("value", $("#Slug").val());
        var titleField = document.createElement("input");
        titleField.setAttribute("type", "hidden");
        titleField.setAttribute("name", "Title");
        titleField.setAttribute("value", $("#Title").val());
        form.appendChild(bodyField);
        form.appendChild(nameField);
        form.appendChild(titleField);
        document.body.appendChild(form);

        window.open("/Home/Preview", 'formresult', 'scrollbars=yes,menubar=yes,height=600,width=800,resizable=yes,toolbar=yes,status=yes');

        form.submit();
    });
});
这个很好用。不过,我注意到一件奇怪的事情,就是当我在内容中加入一些嵌入式GIST时,这些GIST不会出现在Chrome中。但他们确实出现在IE中


这是一个Chrome bug(或功能),还是我做错了什么?

试一下用更简短的形式(我单独移动了id以压缩列表):)

$(文档).ready(函数(){
$(“#预览按钮”)。单击(函数(){
$(“#预览表单”).remove();
window.open(“/Home/Preview”,“formresult”,
'滚动条=是,菜单栏=是,高度=600,宽度=800';
$("")
.attr('id','previewform')
.append($(“”).val($(“#Body”).val())
.append($(“”).val($(“#Slug”).val())
.append($(“”).val($(“#Title”).val())
.appendTo('正文')
.submit();
});
});

用更短的形式尝试一下(我单独移动了id以压缩列表):)

$(文档).ready(函数(){
$(“#预览按钮”)。单击(函数(){
$(“#预览表单”).remove();
window.open(“/Home/Preview”,“formresult”,
'滚动条=是,菜单栏=是,高度=600,宽度=800';
$("")
.attr('id','previewform')
.append($(“”).val($(“#Body”).val())
.append($(“”).val($(“#Slug”).val())
.append($(“”).val($(“#Title”).val())
.appendTo('正文')
.submit();
});
});

Chrome浏览器和几乎所有浏览器都有弹出窗口拦截器。禁用它并重试。不,弹出窗口看起来很好,只是主体中的脚本标记没有呈现在弹出窗口中。其他一切都很好。在这种情况下,你有指向该页面的链接吗?顺便说一句,如果您使用的是jQuery,为什么需要这么长的元素创建过程?所有这些属性和元素都可以在jQuery的帮助下以一种更简单的方式进行设置?我尝试了这个代码,它打开了一个新窗口,没有任何问题。所以问题出在别的地方了。你在/home/preview上检查过你是否得到了你需要的数据吗?我认为引用的脚本没有任何问题。您是否检查了浏览器的错误控制台?此外,请查看Chrome开发者工具中的“网络”选项卡,查看提交的数据。Chrome和几乎所有浏览器都有弹出窗口拦截器。禁用它并重试。不,弹出窗口看起来很好,只是主体中的脚本标记没有呈现在弹出窗口中。其他一切都很好。在这种情况下,你有指向该页面的链接吗?顺便说一句,如果您使用的是jQuery,为什么需要这么长的元素创建过程?所有这些属性和元素都可以在jQuery的帮助下以一种更简单的方式进行设置?我尝试了这个代码,它打开了一个新窗口,没有任何问题。所以问题出在别的地方了。你在/home/preview上检查过你是否得到了你需要的数据吗?我认为引用的脚本没有任何问题。您是否检查了浏览器的错误控制台?另外,请查看Chrome开发者工具中的“网络”选项卡,查看提交的数据。我欣赏这个可读性更强、更紧凑的版本,但它仍然在做同样的事情。我欣赏这个可读性更强、更紧凑的版本,但它仍然在做同样的事情。
$(document).ready(function () {
    $("#previewButton").click(function () {
        $("#previewform").remove();
        window.open("/Home/Preview", 'formresult',
                     'scrollbars=yes,menubar=yes,height=600,width=800');
        $("<form method='post' action='/Home/Preview' target='formresult'/>")
         .attr('id', 'previewform')
         .append($("<input type='hidden' name='Body'/>").val($("#Body").val()))
         .append($("<input type='hidden' name='Slug'/>").val($("#Slug").val()))
         .append($("<input type='hidden' name='Title'/>").val($("#Title").val()))
         .appendTo('body')
         .submit();
    });
});