javascript - 将 PHP 变量传递给连接到 HTML 的 JavaScript 文件
问题描述
I'm building a chrome extension and it uses an HTML <form>
element. On submit it opens to a new page which would process the input and send a notification using it.
When I use the element so that the script is in the HTML file, it gives an error saying it violates the content security policy (and yes I have added the 'unsafe-inline' with the 'content-security-policy' line to the manifest for the extension- it still gives the same error).
When I try using var test = "<?php echo $TEST; ?>
it does not work. Instead, the variable gets directly set to <?php echo $TEST; ?>
.
This is the HTML with the PHP:
<!DOCTYPE html>
<html>
<head>
<?php
$title = $_GET["title"];
$iconURL = $_GET["iconURL"];
$type = $_GET["type"];
$msg = $_GET["msg"];
$TEST = "test"
?>
<title>Notification Tester</title>
<script src="submitted.js" type="text/javascript"></script>
<style>
code {
color: rgb(0, 0, 0);
font-family: consolas;
size: 20;
background-color: #ebebeb;
border: 5px, solid, #ebebeb;
border-radius: 5px;
padding: 2.5px;
}
</style>
</head>
<body>
<p>Code used: </p> <br>
<code>
chrome.notifications.create('NOTIFICATION_ID', {<br>
type: <?php echo $_GET["type"]?><br>
iconUrl: <?php echo $_GET["iconURL"]?><br>
title: <?php echo $_GET["title"]?><br>
message: <?php echo $_GET["msg"]?><br>
priority: 2<br>
}
</code><br>
<button function="back()">Back</button>
</body>
</html>
This is the JavaScript file:
var Title = "<?php echo $Title; ?>"
var iconURL = "<?php echo $iconURL; ?>"
var type = "<?php echo $type; ?>"
var msg = "<?php echo $msg; ?>"
alert(Title)
alert(iconURL)
alert(type)
alert(msg)
/*var elements = document.getElementById("form").elements;*/
if (iconURL == "") {
iconURL = "icon128.png";
}
if (Title == "") {console.warn("Title not supplied!");}
if (msg == "") {console.warn("Message not supplied!");}
/*console.warn("Type = " + selected + "; iconURL = " + iconURL + "; title = " + Title + "; message = " + msg);*/
chrome.notifications.create('NOTIFICATION_ID', {
type: type.toString(),
iconUrl: iconURL.toString(),
title: Title.toString(),
message: msg.toString(),
priority: 2
});
function back() {
window.replace(main.html)
}
The URL when the HTML with PHP is opened is chrome-extension://gaknckdfbdfkicppeomjebaamoopolel/submit.html?type=Basic&title=test&iconURL=&msg=test
(obviously, the value of variables could change).
解决方案
推荐阅读
- python - trinket.io 和 repl.it 上的持续缩进错误 - 无法删除
- powershell - 如何使用 CLI 在 Azure Devops 中设置“重置所有代码审阅者投票”
- android - java.io.InvalidClassException:org.jetbrains.kotlin.incremental.IncrementalModuleInfo
- groovy - 创建 Scriptrunner 作业以列出所有存储库的挂钩
- html - 如何更改 html 电子邮件模板中的白色侧边栏颜色
- java - Java反射:对象不是声明类的实例
- meshlab - 如何在 meshlab 上导入每顶点颜色 FALSE(每面颜色)的 VRML 模型
- php - 我不明白为什么 PDO 插入 ' 代替单引号
- git - 如果我之前没有提交代码,我可以撤消合并吗?
- c# - 如何在 Swagger 中为 .Net Core 使用 @ApiImplicitParams?