我想從我的一個 php 頁面模板中動態分配一個 JS 變數,以便在我的bundle.js檔案中使用分配的變數。
我正在這樣做:
模板-一些-page.php:
<?php
echo "<script>
var javascriptVar = 'success';
</script>";
?>
<div>
...
</div>
捆綁.js:
function readVar() {
console.log(javascriptVar )
}
這種方法效果很好,但問題是使用這種方法是一種好習慣嗎?
在體內創建標簽是否安全?

uj5u.com熱心網友回復:
您顯示的代碼沒有安全問題,只有一個:它將您javascriptVar塞入全域 Javascript 物件中。
你可能會更好地使用它。
echo "<script>
var annasApp = annasApp || {};
annasApp.javascriptVar = 'success';
</script>";
var annasApp = annasApp || {};如果該物件尚不存在,則該行將在全域命名空間中創建一個物件。然后它為物件分配一個屬性值。這使得全域命名空間更干凈且不易出錯——其他代碼不太可能踩到您的代碼,反之亦然。
如果您的代碼想要這樣做,annasApp.javascriptVar = $phpVariable;您確實有一個潛在的安全問題。您必須在回顯之前轉義 $phpVariable 中的資料。否則,您的代碼可能容易受到跨站點腳本攻擊。使用 JSON 是一種很好且安全的處理方式。
$jsonVariable = json_encode( htmlspecialchars( $phpVariable ) );
echo "<script>
var annasApp = annasApp || {};
annasApp.javascriptVar = $jsonVariable;
</script>";
htmlspecialchars()除非您的 Javascript 資料將使用 HTML 呈現,否則是不必要的。
uj5u.com熱心網友回復:
<?php
$script = "
<script>
console.log("Hello World");
var javascriptVar = "success";
</script>";
echo $script;
?>
(或者)
您可以關閉 PHP 標記并撰寫一些 Html 或 js 腳本,然后重新打開 PHP 標記以繼續在同一 .php 擴展檔案中撰寫剩余的 PHP 代碼
<?php
// my PHP code
?>
<script>
console.log("Hello World");
var javascriptVar = "success";
</script>
<?php
// my PHP code
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496365.html
上一篇:列出所有洗掉任何檔案的git提交
