为什么我的代码打开两个窗口?

时间:2011-11-28 10:48:05

标签: javascript asp.net

我正在尝试在单独的标签/窗口中打开.pdf文件。它正在工作,但它会打开两个窗口来显示.pdf。我使用的代码如下。

LinkButton btn = (LinkButton)(sender);
string value = btn.CommandArgument;
imfImageFile = LocalStaticData.UniImageResult;
string path = imfImageFile.WindowsPath;

if (path != "")
{
    Session["OpenPDFImage"] = path;                
    ScriptManager.RegisterStartupScript(Parent.Page, GetType(),
    Guid.NewGuid().ToString(), "openPdf(\"../InvoiceReport.aspx\" );", true);
}

JavaScript:

function openPdf(href) {
    window.open(href);
}

1 个答案:

答案 0 :(得分:2)

好的两个问题 - 我认为Emanuele Greco是正确的,它在你的页面循环中被调用了两次。第二个问题是你每次都给它一个唯一的代码。您应该使用相同的代码(而不是Guid.NewGuid())来确保脚本只添加一次。

E.g。

LinkButton btn = (LinkButton)(sender);
string value = btn.CommandArgument;
imfImageFile = LocalStaticData.UniImageResult;
string path = imfImageFile.WindowsPath;
if (path != "")
  {
    Session["OpenPDFImage"] = path;                
    ScriptManager.RegisterStartupScript(Parent.Page, GetType(),
    "InvoiceReportPDFOpenScript", "openPdf(\"../InvoiceReport.aspx\" );", true);
}