如何动态更改onclick上的embed src?

时间:2018-01-16 13:04:32

标签: javascript php

我想要一个脚本,可以根据用户点击的链接更改embed src而不加载页面。

<?php
    echo "<a href='http://google.com' onclick='javascript:void(0);' onclick='javascript:popWhenClicked(this.href);'>Google.com</a><br />";
    echo "<a href='http://bing.com' onclick='javascript:void(0);' onclick='javascript:popWhenClicked(this.href);'>Bing.com</a><br />";

    echo "<embed src='http://yahoo.com' width='700px' height='500px' />";
?>

<script type='text/javascript'>
    function popWhenClicked(href) {             
        document.getElementsByTagName("embed").setAttribute('src', 'href');
    }
</script>

1 个答案:

答案 0 :(得分:0)

1)从JPanel comp = new JPanel(); comp.setLayout(new GridLayout(1, 20)); for (int i = 0; i < 20; i++) { comp.add(new JLabel(String.format(" %d", i))); } JScrollPane scroll = new JScrollPane(comp, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); BiConsumer<Integer, Integer> setview = (x, y) -> { Point p = scroll.getViewport().getViewPosition(); scroll.getViewport().setViewPosition(new Point(p.x + x, p.y + y)); }; JButton left = new JButton("<"); left.addActionListener(e -> setview.accept(-10, 0)); JButton right = new JButton(">"); right.addActionListener(e -> setview.accept(+10, 0)); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(scroll, BorderLayout.CENTER); frame.add(right, BorderLayout.EAST); frame.add(left, BorderLayout.WEST); frame.pack(); frame.setVisible(true); 功能中删除引号'setAttribute是作为参数传递的变量

2)在href函数中选择对象内的第一个元素。 popWhenClicked获取与选择器匹配的元素列表。

3)不要多次分配getElementsByTagName,但只使用一次。而是在onclick函数中执行return false

所以这样做:(点击 bing ,谷歌会抛出错误)

&#13;
&#13;
popWhenClicked
&#13;
function popWhenClicked(href) {
    document.getElementsByTagName("embed")[0].setAttribute('src', href);

    // Prevent link from going to target
    return false;
}
&#13;
&#13;
&#13;