1
0

【JavaScript】openでコントローラーのメソッドを呼んだ後にタブ名を設定する【ASP.NET】

Last updated at Posted at 2024-03-20

JavaScriptのopenメソッドでコントローラーのCreatePDFメソッドを呼び出し、PDFファイルを別タブで開く処理を作った。

JavaScript
function openFile() {
    let newWindow = open("/Home/CreatePDF");
}
C#
public class HomeController
{
    [HttpGet]
    public IActionResult CreatePDF()
    {
        // PDF作成処理
        ...
    
        return File(fileContents, "application/pdf");
    }
}

この状態だと、タブ名がコントローラーのメソッド名(CreatePDF)になってしまう。

以下のようにdocument.titleを設定したところ、最初の数秒は反映されるが、PDFの読み込みが終わったタイミングでタブ名がCreatePDFに書き換わってしまった。

JavaScript
function openFile() {
    let newWindow = open("/Home/CreatePDF");
    newWindow.document.title = "タブ名";
}

結論

onloadとsetTimeoutを組み合わせ、PDFの読み込みが完了してから0.5秒後にタブ名を設定することで実現できた。(秒数は要調整)

JavaScript
function openFile() {
    let newWindow = open("/Home/CreatePDF");
    newWindow.onload = function () {
        setTimeout(function () {
            newWindow.document.title = "タブ名";
        }, 500);
    };
}
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0