繁体   English   中英

是否可以从不同 ZFC35FDC70D5FC69D2639EZ888A 的 javascript function 创建和打开新的 html?

[英]Is it possible to create and open a new html from a javascript function of a different html?

这是第一个 html 文件,单击提交按钮时应该调用 js function。 但我不知道是不是这样,因为我没有得到预期的 output。

<!DOCTYPE html>
<html>
<head>
<title>Loan</title>
<script src="loan.js" type="text/javascript"></script>
</head>
<body>
<h1>Details to enter</h1>
<table border="1" cellpadding="5" cellspacing="5" width="600">
<tr align="center">
<td>Value1</td>
<td>Value2</td>
<td>Value3</td>
</tr>
<tr align="center">
<td><input name="number1" type="text" size=10 id='num1'/></td>
<td><input name="number2" type="text" size=10 id='num2'/></td>
<td><input name="number3" type="text" size=10 id='num3'/></td>
</tr>
<tr>
<td colspan="3">
<button onclick="loancalculate()">Submit</button>
</td>
</tr>
</table>
</body>
</html>

这是“loan.js”文件,它试图通过 window.open("filename") 创建和打开一个新的 html 文件。 有可能做到这一点吗?

function loancalculate (){
var a=parseFloat(document.getElementById('num1').value);
var r=parseFloat(document.getElementById('num2').value);
var p=parseFloat(document.getElementById('num3').value);
var res;

var principal_portion = [];
var interest_paid = [];
var payment = (r*a)/(1-(1+r)**(-p));
payment = payment.toFixed(2);
var ob = [];
for (i = 1; i < p+1; i++) {
    ppn = payment*(1+p-i).toFixed(2);
    interest = (payment - ppn).toFixed(2);
    principal_portion.push(ppn);
    interest_paid.push(interest);
}
ob.push(a-principal_portion[0]);
for (i = 1; i < p; i++){
    ob.push(ob[i-1]-principal_portion[i]);
}


var fs = require('fs');

var htmlContent = '<table border="1">\n<tr><th>Sl no</th><th>Amount</th><th>Total Amount</th><th>Interest Amount</th><th>Balance</th></tr>\n';
for (i = 0; i < p; i++){
    htmlContent = htmlContent + '<tr><td>' + string(slno) + '</td><td>' + payment + '</td><td>' + principal_portion[i] + '</td><td>' + interest_paid[i] + '</td><td>' + ob[i] + '</td></tr>\n';
}
htmlContent = htmlContent + '</table>';
fs.writeFile('result.html', htmlContent, (error) => { /* handle error */ });
window.open("result.html");
}

我想也许你可以通过直接在文档上写HTML代码来解决问题:

function loancalculate() {
    var a = parseFloat(document.getElementById('num1').value);
    var r = parseFloat(document.getElementById('num2').value);
    var p = parseFloat(document.getElementById('num3').value);
    var res;

    var principal_portion = [];
    var interest_paid = [];
    var payment = (r * a) / (1 - (1 + r) ** (-p));
    payment = payment.toFixed(2);
    var ob = [];
    for (i = 1; i < p + 1; i++) {
        ppn = payment * (1 + p - i).toFixed(2);
        interest = (payment - ppn).toFixed(2);
        principal_portion.push(ppn);
        interest_paid.push(interest);
    }
    ob.push(a - principal_portion[0]);
    for (i = 1; i < p; i++) {
        ob.push(ob[i - 1] - principal_portion[i]);
    }


    //var fs = require('fs');

    var htmlContent = '<table border="1">\n<tr><th>Sl no</th><th>Amount</th><th>Total Amount</th><th>Interest Amount</th><th>Balance</th></tr>\n';
    for (i = 0; i < p; i++) {
        htmlContent = htmlContent + '<tr><td>' + i + '</td><td>' + payment + '</td><td>' + principal_portion[i] + '</td><td>' + interest_paid[i] + '</td><td>' + ob[i] + '</td></tr>\n';
    }
    htmlContent = htmlContent + '</table>';
    
    document.write(htmlContent);
    
    //fs.writeFile('result.html', htmlContent, (error) => { /* handle error */ });
    //window.open("result.html");
}

我对您的代码进行了一些修改,以举例说明它是如何实现的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM